Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Mechanika ruchu postaci (węża)

Ostatnio zmodyfikowano 2012-05-31 13:56
Autor Wiadomość
Admixior
Temat założony przez niniejszego użytkownika
Mechanika ruchu postaci (węża)
» 2012-05-29 21:05:39
Witam
Chciałem zaprogramować grę. Lecz na obmyślaniu, jakby to zrobić, stanąłem. Myślałem nad jednym sposobem ale wydawał mi się on nieefektywny, obawiam się lagów.
Gra podobna (albo identyczna) do tej http://achtungdiekurve.net/
Mój sposób polega na tym że mam mapę "sf::Image mapa" i przetrzymuje ona kolory całej mapę. (To że jest typu sf::Image ułatwi mi późniejsze rysowanie na ekranie.) Podczas przemieszczania się sprawdzam czy piksel na którym będzie kulka nie ma już jakiegoś koloru (np. każda postać będzie zostawiała za sobą np. kolor red=150). Tylko zastanawiam się czy sprawdzanie i zapis koloru np dla 8 graczy co każdy ruch kółka będzie wystarczająco szybki.
Więc może jest jakiś lepszy sposób na zrobienie tego?
Może by zrobić tablice bool gdzie zapisuje się, gdzie była jakaś postać, i z nią sprawdzać. A do Image będę tylko zapisywać wygląd mapy.
Zastanawiałem się też nad tablicą Color, ale późniejsze kopiowanie całej mapy co zmianę może przynieść delikatne lagi.

Mam jeszcze pytanie w jaki sposób można wygodnie rysować ślad za postacią żeby to była linia ciągła (krzywa lub prosta) i żeby nie było ewentualnych dziur lub nierówności gdyby postać nagle przyspieszyła.

//Czytając wiadomość zauważyłem że właściwie pytam o całą mechanikę gry, ale nie miejcie mi tego za złe, w końcu to jest moja pierwsza trochę bardziej zaawansowana gra. :)
P-57472
akwes
» 2012-05-29 21:23:23
Ja bym próbował zrobić ścieżkę za postacią podzieloną na segmenty o określonym rozmiarze. Segment zawsze będzie miał właściciela, będzie szansa odrzucenia dużej ilości sprawdzań dokładnych kolizji przez szacunkowe kolizje.

Segmenty można rysować (jeżeli będą to figury wypukłe np. segmentem będzie prostokąt) przez sf::Shape.

P-57474
Admixior
Temat założony przez niniejszego użytkownika
» 2012-05-30 22:39:25
hmm... Nie bardzo rozumiem w jaki sposób miałoby to dzielenie ścieżki przebiegać, ale czytając o segmentach pomyślałem sobie, że może podzielić mapę na kwadraty np. 10px na 10px. i jeżeli obiekt wyjdzie po za kwadrat, na którym był, zaznacza w tablicy, że ktoś był w tym segmencie. Przy poruszaniu po segmencie sprawdza się czy ktoś już tu nie był jak był to koniec gry (lub też sprawdza dokładnie i wtedy ew. jak wpadnie koniec gry).
Nie wiem czy o to chodziło, ale taki sposób wydaje się być niezły. Czy będzie się sprawdzał?
P-57524
akwes
» 2012-05-31 13:56:25
P-57531
« 1 »
  Strona 1 z 1