Nowy artykuł

2007-12-26 12:10

W święta podobno się nie programuje, więc wziąłem się chwilowo za coś innego :) Postanowiłem więc zrealizować pomysł na artykuł, który przyszedł mi do głowy kilka dni temu – głównie pod wpływem kilku pytań o podobnej tematyce, jakie przewinęły się na forum Warsztatu.
Tak powstał tekst o nieco tajemniczym tytule Pętla czasu rzeczywistego, który w rzeczywistości jest prostym omówieniem prawidłowego sposobu konstrukcji głównej pętli gry i uaktualniania jej stanu zależnie od czasu – tak, by gra działała tak samo niezależnie od wydajności sprzętu. Sprawy to dość proste, ale ważne i najwyraźniej zbyt często pomijane. Myślę więc, że taki artykuł ma niezerową szansę, żeby komuś się przydać :)

Tags: ,
Author: Xion, posted under Website »


7 comments for post “Nowy artykuł”.
  1. digress:
    December 26th, 2007 o 13:23

    Jak zwykle kawał dobrej roboty.

  2. zerlo:
    December 26th, 2007 o 15:25

    Artykul jest ciekawy. Szczegolnie dla takich nubkow jak ja, ale nie moge zrozumiec jednej rzeczy.

    Czemu tylko, gdy _nie_ zachodzi zdarzenie uaktualniamy stan gry itd? Nie mozna zrezygnowac z tego else:

    Jezeli zaszlo zdarzenie to je obsluz, a nastepnie uaktualnij stan.

    Jaka jest roznica?

  3. Toudi:
    December 26th, 2007 o 15:37

    zerlo – a jeśli zdarzeniem jest zamknięcie aplikacji, zmiana jakiś parametrów wyświetlania to po co wykonywać dalszą część?

    Tak btw. Fajny tutorial, na pewno komuś się przyda.

  4. Xion:
    December 26th, 2007 o 16:06

    zerlo: Z dwóch powodów:

    1. Najczęściej zdarzenia w ogóle nie zachodzą. Zostaw np. myszkę i klawiaturę, to okno gry nie dostanie właściwie żadnych komunikatów i nie będzie się odświeżało, a gra będzie stała w miejscu. A czas płynie.

    2. Jeżeli byśmy odrysowywali ekran tylko po obsłużeniu jakiegoś zdarzenia, to kolejne klatki pojawiałyby się tylko po kliknięciach albo wciśnięciach klawiszy. Gdzie tu płynność? Rysować trzeba cały czas.

  5. zerlo:
    December 26th, 2007 o 17:04

    Nie chodzilo mi o “tylko po obsluzeniu”. Mialem na mysli nie przerywanie danego kroku petli (nie wiem jak to nazwac) po obsluzeniu. Czyli o usuniecie “else” po warunku.

    if (ZaszloZdarzenie()) ObsluzZdarzenie();
    UaktualnijStanGry();
    Rysuj();

    Ale chyba Toudi to wyjasnil. Dzieki.

  6. Anonymous:
    December 26th, 2007 o 21:20

    Bo jak dostaniesz dwa komunikaty pod rząd, to zamiast dwa razy rysować, obsłużasz dwa komunikaty i dopiero rysujesz.

  7. Zene:
    December 29th, 2007 o 14:39

    Brakuje mi jednej opcji dotyczącej artykułów – “Wersja do druku”

Comments are disabled.
 


© 2017 Karol Kuczmarski "Xion". Layout by Urszulka. Powered by WordPress with QuickLaTeX.com.