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

"Ruch" węża w grze

Ostatnio zmodyfikowano 2010-08-03 08:04
Autor Wiadomość
Savail
Temat założony przez niniejszego użytkownika
"Ruch" węża w grze
» 2010-08-02 08:16:53
Witam
Ostatnio postanowilem sprawdzic sie czy umiem juz napisac prostego weza w konsoli. Troche dlugo nad tym myslalem i szukalem w google bo nie zawsze znalem odpowiednie funkcje. Mam jeszcze 1 problem. Nie wiem jaką metodą sprawić bo ciało węża poruszało się za głową. Próbowałem kawalki ciala umieszczac w tablicy i wyswietlac petla for ale to nic nie dawalo.
Bede ogormnie wdzieczny za pomoc.
P-20340
lenrokskate
» 2010-08-02 09:37:34
tak jak powiedziałeś tablice i pętle for - tylko teraz kombinuj jak je poprawnie napisać i masz węża
P-20342
Razi
» 2010-08-02 10:35:57
Ja bym użył vector, bo ma metodę du usuwania pierwszego/ostatniego elementu i dodawania na końcu/początku, co przy wężu jest wyjątkowo przydatne.
Przy każdym kroku usuwasz jeden z końca/początku, a na drugi koniec dodajesz współrzędne nowego kwadrata.

A jeżeli to chcesz zrobić konsolowe, to albo użyć jakiejś biblioteki do "rysowania" konsolowego (np. ncurses), albo samemu napisać coś podobnego, oparte na dwuwymiarowej tablicy charów i podczas "rysowania" zastępować komórki tej tablicy, a potem żeby wyświetlić, to jedna pętla for do wyświetlenia linii po linii.
P-20343
michalp
» 2010-08-02 11:20:33
Jeżeli chcesz dodawać i usuwać elementy tak często to lepiej zamiast std::vector skorzystaj z std::list. Natomiast wystarczy tylko przejść po wszystkich elementach i zmienić im odpowiednio współrzędne.
P-20345
Savail
Temat założony przez niniejszego użytkownika
» 2010-08-02 15:07:50
aha, czyli rozumiem ze metoda list bylaby najwydajniejsza... Niestety nie za bardzo wiem jak sie do tego zabrac. Co mam dodawac i usuwac do listy, wspolrzedne ciala czy odrazu gotowe kawalki ciala? I powinienem utworzyc tablice obiektow wlasnej klasy? Czy nie jest potrzebna? Troche ciezko znalesc cos w internacie o std::list po polsku wiec prosze o wyrozumialosc i dzieki za nakierowanie mnie
P-20347
Bartaz
» 2010-08-02 22:25:23
Może to ci pomoże na końcu wszystko wyjaśnione:
Prosta gra zręcznościowa - WĄŻ
P-20355
Razi
» 2010-08-02 23:13:36
std::list
Angielski wypadałoby znać.. Najważniejsze:
Tworzysz strukturę:
C/C++
struct point
{
    int x, y;
}
Tworzysz listę:
C/C++
std::list < point > punkty;
Dodajesz do listy pierwsze elementy:
C/C++
punkty.push_front( punkt1 );
punkty.push_front( punkt3 );
punkty.push_front( punkt2 );
...przy każdym kroku:
C/C++
punkty.pop_back();
punkty.push_front( nowy_punkt );
A przy rysowaniu:
C/C++
list < punkt >::iterator it;
for( it = punkty.begin(); it != punkty.end(); it++ )
{
    draw( * punkt.x, * punkt.y );
}
mogłem się gdzieś pomylić.
P-20356
Savail
Temat założony przez niniejszego użytkownika
» 2010-08-03 08:04:20
Dzieki, wasze posty napewno mi sie przydadza. Jak mi sie uda zrobic weza to zaprezentuje na forum :p
P-20358
« 1 »
  Strona 1 z 1