bingo009 Temat założony przez niniejszego użytkownika |
[Allegro 5]Snake i części ciała » 2012-02-22 14:06:59 Witam was serdecznie, ostatnio pracuje nad snake'em w Allegro 5. Cała grafika to zwykłe prymitywy(czerwone małe kółko jako jabłko, i zielone większe jako wąż). Mam jeden problem. Wiadomo, że w Snake'u, ciało rośnie wraz z zjadaniem kolejnych jabłek. Steruje górną częścią węża i jak zrobić aby pozostałe części krok w krok podążały za górną częścią. Czyli, że górna skręci w prawo, potem druga za nią, a potem trzecia itd. Jak to można zrobić? |
|
szyx_yankez |
» 2012-02-22 14:23:18 Np. tak(jeżeli Twój wąż chodzi płynnie, a nie "skokowo"):
vector < int > vec_x; vector < int > vec_y; int X, Y;
vec_x.push_back( X ); vec_y.push_back( Y );
for( int i = 0; i < snake_size; i++ ) draw_circle( vec_x[ vec_x.size() - i * circle_size ], vec_y[ vec_y.size() - i * circle_size ] );
|
|
pekfos |
» 2012-02-22 15:28:58 Nie rozumiem, po co zakładać temat i czekać na odpowiedź nx minut jak można samemu użyć mózgu i poszukać w google lub w innej szukajce(Rozwiązanie miałbyś w n minut zamiast nx minut). Były tutaj (nie licząc tego tematu) co najmniej 4 tematy o implementacji Snake'a. Ich znalezienie też nie jest żadną filozofią.. |
|
bingo009 Temat założony przez niniejszego użytkownika |
» 2012-02-22 17:04:04 Tu mam błędy w kompilacji: c:\users\7\documents\visual studio 2010\projects\graphics snake\graphics snake\main.cpp(72): error C2065: 'vec_y' : undeclared identifier 1>c:\users\7\documents\visual studio 2010\projects\graphics snake\graphics snake\main.cpp(72): error C2065: 'vec_y' : undeclared identifier 1>c:\users\7\documents\visual studio 2010\projects\graphics snake\graphics snake\main.cpp(72): error C2228: left of '.size' must have class/struct/unio
Tu deklaracja zmiennych: vector < int > vec_x; vector < int > vec_y; int jx, jy; int player_x = 315, player_y = 235; int snake_size = 1;
A tu pętla: while( !al_key_down( & key_state, ALLEGRO_KEY_ESCAPE ) ) { al_get_keyboard_state( & key_state ); if( al_key_down( & key_state, ALLEGRO_KEY_RIGHT ) ) ++player_x; if( al_key_down( & key_state, ALLEGRO_KEY_LEFT ) ) --player_x; if( al_key_down( & key_state, ALLEGRO_KEY_UP ) ) --player_y; if( al_key_down( & key_state, ALLEGRO_KEY_DOWN ) ) ++player_y; al_clear_to_color( al_map_rgb( 0, 0, 0 ) ); vec_x.push_back( player_x ); vec_y.push_back( player_y ); for( int i = 0; i < snake_size; i++ ) { al_draw_circle( vec_x[ vec_x.size() - i * 6 ], vec_y[ vec_y.size() - i * 6 ], 6.25, al_map_rgb( 28, 223, 0 ), 19 ); } al_flip_display(); }
Co jest nie tak? |
|
pekfos |
» 2012-02-22 17:16:20 W jakim bloku są definicje zmiennych? |
|
bingo009 Temat założony przez niniejszego użytkownika |
» 2012-02-22 17:19:11 W żadnym, są luzem poza funkcjami w pliku main.cpp.
Edit: Przeniosłem deklaracje zmiennych dla wektora, do funkcji main. Teraz kompiluje się, ale kiedy uruchamiam wywala mi: http://www.kamilsite.xaa.pl/Obrazy/Przechwytywanie.JPG
Edit: Zamykam, ale dzięki za pomoc. Wolę sam pokombinować troszkę. |
|
« 1 » |