sebox Temat założony przez niniejszego użytkownika |
Snake, ruch » 2014-05-07 21:19:48 Witam! Zacząłem sobie pisać snake w tablicy dwuwymiarowej. I zrobiłem ruch w górę dół lewo i prawo i to działa, kasuje się ostatnia część ogona i dodaje na początku ale jeżeli snake leci przykładowo do góry a potem skręcę w lewo to nie kasują się już te części w pionie, reasumując po prostu mam problem ze współrzędnymi końca ogona, nie wiem w jaki sposób je określać. Kod ruchu do góry: if( * kie == 3 ) { gotoxy( * wy, * wx = x - 1 ); sprawdz.kolizjazesciana( x, y, tab[ * wx ][ * wy ] ); cout << char( 219 ); * mx = x + length; * my = y; gotoxy( koniecy, koniecx ); cout << " "; Sleep( 1000 ); }
*mx i *my to współrzędne końca ogona, nie mam pomysłu jak inaczej można by było "znaleźć" te współrzędne z każdym obiegiem pętli. Prosiłbym o jakieś wskazówki. |
|
pekfos |
» 2014-05-07 21:27:34 *mx i *my to współrzędne końca ogona, nie mam pomysłu jak inaczej można by było "znaleźć" te współrzędne z każdym obiegiem pętli. |
A po co je znajdować, skoro już je masz? Na dwóch zmiennych węża i tak nie zrobisz. |
|
sebox Temat założony przez niniejszego użytkownika |
» 2014-05-07 21:37:05 Dlaczego nie? Jeżeli chodzi o kolizję głowy z ogonem, to będę przypisywał wartość 1 dla każdego elementu ciała snake, sprawdzał kolizję a potem zerował. Ten sposób z *mx i *my który napisałem jest błędny bo działa tylko jeżeli snake idzie tylko w jedną ze stron, jeżeli wykona po jakimś czasie ruch w inną stronę to to już nie zadziała i właśnie nie wiem jak by to inaczej zrobić. |
|
pekfos |
» 2014-05-07 22:21:24 bo działa tylko jeżeli snake idzie tylko w jedną ze stron, jeżeli wykona po jakimś czasie ruch w inną stronę to to już nie zadziała |
Na podstawie tej twojej tablicy nie możesz określić, gdzie wąż skręca. Wystarczający powód? |
|
sebox Temat założony przez niniejszego użytkownika |
» 2014-05-08 14:52:35 Mogę określić i określam jaki kierunek w switch case mam jeśli przykładowo kliknie 'w' to *kie = ileśtam jakaś liczba którą uznam za dany kierunek, *wx i *wy są współrzędnymi głowy, więc to jest jak powinno ale powtarzam mam problem z końcem ogona bo nie wiem jak w poprawny sposób znaleźć współrzędne ostatniej pozycji ogona, żeby móc ją skasować a jeżeli snake zje jabłko to nie kasować. |
|
pekfos |
» 2014-05-08 17:50:27 To za mało. Utwórz kontener i wrzucaj pozycje elementów węża. Dodajesz pozycje na początek i usuwasz (lub nie) z końca. |
|
sebox Temat założony przez niniejszego użytkownika |
» 2014-05-08 19:18:49 Ok, szczerze mówiąc nie uczyłem się jeszcze o kontenerach, więc będzie to dobry moment do rozpoczęcia nauki, dzięki za pomoc i nakierowanie :) |
|
« 1 » |