Główna pętla gry komputerowej

0

Witam
Mam pytanie w zwiazku z glowna petla w grze komputerowej.
Jak wiadomo glowna petla polega na wykonywaniu pewnych warstw
np jedna warstwa sprawdza wejscie, nastepna zajmuje sie aktualizacja pozycji,
fizyki,czy tez sztucznej inteligencji, pozniej kolizja miedzy obiektami i na koncu wyswietlenie
klatki obrazu dzieki wygenerowanym przez petle informacji o grze, tak jak ponizszy pseudokod(z wikipedi) :

 pętla( użytkownik nie wyłączył gry )
  sprawdzenie wejścia gry
  wykonanie warstwy logicznej
  sprawdzenie kolizji
  narysowanie grafiki
  odegranie dźwięków
koniec pętli

Ale czy powinno sie kurczowo trzymac tego szkieletu gry przy tworzeniu gier?
Np jezeli zmieniamy pozycje gracza to najpierw moglibysmy sprawdzic czy nie koliduje
z jakims obiektem, jezeli tak to nie zmieniac tej pozycji,a tak to najpierw zmieniamy pozycje
potem sprawdzamy kolizje i co? Cofamy gracza?
Moze czepiam sie szczegolow ale chcialbym pisac taki "czysty" ,logiczny, poukladany kod,
zeby wszystko mialo swoje miejsce w programie,zeby instrukcje jednych warstw nie byly czescia
instrukcji innych warstw,a nie jedna wielka kupa kodu,ktorej nie da sie
rozszyfrowac.

0

Wykrywanie kolizji nie ma na celu jej uniknięcia, tylko poprawnego wywołania jej efektów.

0

Sprawdzanie kolizji powinno mieścić się (w przykładzie, który podałeś) w warstwie logicznej. To tam zmieniasz pozycję elementów oraz obsługujesz kolizje.

1

@lookacode1 to zależy, chodzi mi o to, że cała ta obsługa powinna być dodana do warstwy logicznej.
Przykład, stoisz przy ścianie i chcesz się ruszyć do przodu, więc idąc tokiem, który podałeś najpierw wchodzisz w ścianę, później sprawdzasz kolizję i musisz wykonać operację cofnięcia. Szybciej będzie jeśli najpierw sprawdzić czy masz kolizję i jeśli nie w tedy wykonujesz ruch.
Drugi przykład - kręgle i uderzenie kulą . W tym wypadku niezależnie od tego czy najpierw wykonasz ruch, czy sprawdzisz kolizję i tak efektem będzie przesunięcie kręgli.
Tak więc jak widać operacje logiczne i kolizje to jest jedna i ta sama warstwa. Może autor wpisu w wiki chciał podkreślić, że jest taka warstwa jak warstwa kolizji, ale zapomniał uwzględnić że powinna znajdować się w warstwie logicznej, nie wiem.

Jeśli chcesz wiedzieć coś więcej na ten temat zapraszam na stronę: http://www.warsztat.gd. Serwis poświęcony jest tematyce tworzenia gier, więc na pewno znajdziesz tam sporo ciekawych informacji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1