Forczek Temat założony przez niniejszego użytkownika |
Allegro 5 snake-jak zrobić aby wąż się powiększał? » 2013-03-06 19:15:52 Witam, piszę powoli od kilku dni grę, na podstawie gry Snake. Użyłem mapy kafelkowej. Mam już: menu, losowanie pozycji owocu, węża, oraz zrobiłem mapę kafelkową. Jak zrobić powiększanie się węża? |
|
Savail |
» 2013-03-06 19:23:41 kolejne obiekty ciała węża przechowuj w std::vector. A później kolejno wyświetlaj z odpowiednią pozycją |
|
Forczek Temat założony przez niniejszego użytkownika |
» 2013-03-06 19:28:06 Ok, zrobię powiększanie się węża. Ale jak z wyświetlaniem, bo na to z kolei też nie mam pomysłów. |
|
Savail |
» 2013-03-06 19:42:53 Skoro używasz mapy kafelkowej to po prostu, za każdym razem gdy głowa węża wejdzie na następny kafel zapisujesz jej poprzednie współrzędne i zmieniasz współrzędne pierwszego obiektu za nią właśnie na te poprzednie współrzędne. I tak samo z każdym elementem ciała węża. Trzeci element dostaje poprzednie współrzędne (przed ruchem) elementu drugiego, czwarty współrzędne trzeciego itd... |
|
Forczek Temat założony przez niniejszego użytkownika |
» 2013-03-06 19:50:13 Odziwo, to wiem jak zrobić. Z liczbami itp. ale chodzi mi o samo wyświetlanie. Jak zrobić, żeby nie pisać if(....) po ileś tam razy. Tylko raz to zapętlić. Bo z powiększaniem się węża dam rade. Samo wyświetlanie. |
|
killjoy |
» 2013-03-06 19:54:57 Kolego @Forczek skoro masz już daną pozycje pojedyńczego segmentu węża w vectorze, to poprostu rysujesz te segmenty na danych pozycjach (każdy segment ma jeden vector z jego pozycją x i y). |
|
Forczek Temat założony przez niniejszego użytkownika |
» 2013-03-06 20:04:56 Dobra. Na 99% dam już rade. Jak nie, to po prostu otworze znowu temat. |
|
Forczek Temat założony przez niniejszego użytkownika |
» 2013-03-09 08:43:44 A więc. Do tej pory wymyśliłem, jak zrobić, aby mój wąż się powiększał i jak zrobić, żeby jakby to powiedzieć, wąż wił się :D. Ale no niestety mi to nie działa. Oto kod: if( pozycja_weza_x[ 0 ] == pozycja_owocu_x && pozycja_weza_y[ 0 ] == pozycja_owocu_y ) { food = true; dlugosc_weza += 1; }
if( i == 0 ) { i = dlugosc_weza; k = i; } else { i -= 1; k = i - 1; }
if( frame == 1000 - i && i > 0 ) { pozycja_weza_x[ i ] = pozycja_weza_x[ k ]; pozycja_weza_y[ i ] = pozycja_weza_y[ k ]; }
Niestety, kod mi nie działa. Nie wiem dlaczego. Wypisywałem pozycje węża, po wydłużeniu się. Głowa jest bez zmian, lecz pozostałe części zwracają wartość zero. Jakby było coś niezrozumiałe, to proszę pytać ^^ |
|
« 1 » 2 |