szpaq99 Opublikowano 25 Kwietnia 2010 Udostępnij Opublikowano 25 Kwietnia 2010 Mam taki kod na poruszanie się : if( key[KEY_LEFT]) ludek_x--; if( key[KEY_RIGHT]) ludek_x++; if( key[KEY_UP]) ludek_y--; if( key[KEY_DOWN]) ludek_y++; Ale nie wiem jak zrobić aby po naciśnięciu klawisza zmieniać sprita czołgu? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 25 Kwietnia 2010 Udostępnij Opublikowano 25 Kwietnia 2010 Bodajże Allegro korzysta z BITMAP, użyj wskaźników. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rudy Opublikowano 25 Kwietnia 2010 Udostępnij Opublikowano 25 Kwietnia 2010 Ta stronka może pomóc: Kurs ddt Spróbuj zrobić tablicę bitmap, do każdej zapisz po jednym obrazku, potem definicja zmiennej image_index no i pododawaj wszędzie image_index=numer_obrazka Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
szpaq99 Opublikowano 25 Kwietnia 2010 Autor Udostępnij Opublikowano 25 Kwietnia 2010 Czyli jak na przykład zrobić tą tablicę ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 25 Kwietnia 2010 Udostępnij Opublikowano 25 Kwietnia 2010 /*!--- CObject ---*/ /*! Klasa obiektu. */ class CObject { public: //! Ilosc bitmap. SubImages; //! Wskaznik na tablice dynamiczna wskaznikow bitmap sprajtow BITMAP** Bitmaps; //! Numer bierzacej bitmapy int CurrentImage; //! Pozycja X. int X; //! Pozycja Y. int Y; /*! Konstruktor domyslny. subimages: ilosc bitmap jakie posiada obiekt. */ CObject( int subimages = 1 ); /*! Destruktor. */ ~CObject(); /*! Animuje obiekt. speed: ilosc klatek ktore ma 'przeskoczyc'. */ void Animate( int speed ); }; CObject::CObject(int subimages) { if( subimages < 1 ) subimages = 1; // minimalna liczba bitmap to 1 Bitmaps = new BITMAP* [ subimages ]; // tworzysz tablice wskaznikow na bitmapy CurrentImage = 0; // indeks bierzacej bitmapy SubImages = subimages; // zapamietujesz ich ilosc } CObject::~CObject() { /* tutaj dasz petle w ktorej niszczysz wszystkie bitmapy w tablicy. */ if( Bitmaps ) delete[] Bitmaps; // oczywiscie usuwasz tez sama tablice wskaznikow na bitmapy } void CObject::Animate( int speed ) { CurrentImage += speed; // dodajesz klatki CurrentImage = CurrentImage % SubImages; // ograniczasz numer bierzacej klatki do ich maksymalnej liczby } int main() { CObject obiekt( 4 ); // tworzymy obiekt o 4 bitmapach /* ladujemy bitmapy */ obiekt.Bitmaps[ 0 ] = load_bitmap( "sprajt0.bmp" ); obiekt.Bitmaps[ 1 ] = load_bitmap( "sprajt1.bmp" ); obiekt.Bitmaps[ 2 ] = load_bitmap( "sprajt2.bmp" ); obiekt.Bitmaps[ 3 ] = load_bitmap( "sprajt3.bmp" ); // petla w ktorej rysujesz bitmapy pobierajac je przez: obiekt.Bitmap[ obiekt.CurrentImage ] } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
szpaq99 Opublikowano 25 Kwietnia 2010 Autor Udostępnij Opublikowano 25 Kwietnia 2010 Sorry psichix ale ja jestem jeszcze za tempy żeby używać klas, i czy jest w allegro funkcja do rotacji sprita i jak ją używać ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności ANtY Opublikowano 25 Kwietnia 2010 Filar Społeczności Udostępnij Opublikowano 25 Kwietnia 2010 Sorry psichix ale ja jestem jeszcze za tempy żeby używać klas, i czy jest w allegro funkcja do rotacji sprita i jak ją używać ? google -> allegro sprite rotation Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
szpaq99 Opublikowano 3 Maja 2010 Autor Udostępnij Opublikowano 3 Maja 2010 Tak wygląda mój kod na chodzenie, ale nie wiem co zrobić aby postać po naciśnięciu obu klawiszy nie poruszała się na ukos ? if(key[KEY_LEFT]) { BmpState = 2; BmpState_x--; } if(key[KEY_RIGHT]) { BmpState = 0; BmpState_x++; } if( key[KEY_UP]) { BmpState = 3; BmpState_y--; } if( key[KEY_DOWN]) { BmpState = 1; BmpState_y++; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 3 Maja 2010 Udostępnij Opublikowano 3 Maja 2010 wrzuć else'y pomiędzy ify. if(key[KEY_LEFT]) { BmpState = 2; BmpState_x--; } else if(key[KEY_RIGHT]) { BmpState = 0; BmpState_x++; } else if( key[KEY_UP]) { BmpState = 3; BmpState_y--; } else if( key[KEY_DOWN]) { BmpState = 1; BmpState_y++; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
szpaq99 Opublikowano 3 Maja 2010 Autor Udostępnij Opublikowano 3 Maja 2010 Dzięki działa D:) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się