Marys Temat założony przez niniejszego użytkownika |
Animacja, przesuwanie punktu » 2012-01-12 18:47:24 Witam, jak w allegro przesuwać np. narysowany prostokąt po danej ścieżce? |
|
RazzorFlame |
» 2012-01-12 19:09:31 Heh ty chyba sobie żarty stroisz :D Nie tak na serio: Zrób sobie enum'a np kierunek i daj np left right up down. Utworz kierunek danego elementu i np jezeli kierunek jest right to inkrementuj pozycje x. Jesli poz x ma jakas tam wartosc to zmieniaj np na left itd... Tu kawałek kodu: ENUM: enum KIER { UP, DOWN, RIGHT, LEFT, NOKIER };
KIER kier1 = NOKIER;
IF'y: if( kier1 == LEFT ) x--;
if( kier1 == RIGHT ) x++;
if( kier1 == UP ) y--;
if( kier1 == DOWN ) y++;
if( x <= 100 ) kier1 = RIGHT;
if( x >= 700 ) kier1 = LEFT;
if( y <= 100 ) kier1 = DOWN;
if( y >= 600 ) kier1 = UP;
I masz wszystko GIT :D |
|
Marys Temat założony przez niniejszego użytkownika |
» 2012-01-12 19:14:42 No dobra tyle to ogarniam, tylko że jak przesunę coś to to co był narysowane na "starej" pozycji to nadal tam jest :/ Chodzi o to, że to mi rysuje o +x w daną stronę, a nie przesuwa :/ |
|
RazzorFlame |
» 2012-01-12 19:20:33 Ja ci radze weź przeczytaj DOKLADNIE kurs na tej stronie lub easykoder.vot.pl (to te same kursy) i dopiero sie pytaj. Przeczytaj o podwojnym buforowaniu... Jesli ci sie nie uda to poszukaj na forum podobnego tematu (jest ich tysiace). Nie bede ci tlumaczył wszystkiego. Dam ci podpowiedz bez kodu:
Stworz bitmape bufor aby miała wysokosc i szerokosc taka jak okno. Wyswietlaj ja i co wykonanie petli koloruj (cleat_to_color(...)), Wyswietlaj grafiki na buforze za pomocą "masked_blit(...)". Ma ona parametry takie jak blit. |
|
SeaMonster131 |
» 2012-01-12 19:52:36 Wyswietlaj ja i co wykonanie petli koloruj (cleat_to_color(...)), Wyswietlaj grafiki na buforze za pomocą "masked_blit(...)". Ma ona parametry takie jak blit. |
Nie koloruj tylko czyść ekran, nie funkcją cleat_to_color() tylko clear_to_color(), o ile @Marys używa Allegro 4 :) Podwójne buforowanie |
|
Marys Temat założony przez niniejszego użytkownika |
» 2012-01-12 20:11:59 No niestety korzystam z 5. Dobra postaram sobie to przełożyć na Allegro5.
Czyli sprawa jest prosta. Tworzymy sobie bufor i tam wrzucam nasza bitmape, a później buffor na ekran. Pytanie czy będzie widoczne to co wcześniej narysowałem na ekranie? |
|
hincu |
» 2012-01-12 20:36:05 jak ma byc widoczne skoro wszystko czysci? O_O rysowanie robisz w 'warstwach' najpierw tileset mapy, pozniej objekty statyczne, elementy mapy (sciana, jakis hp drain czy warp), pozniej wszystko to co sie porusza : ) |
|
SeaMonster131 |
» 2012-01-12 21:58:18 W Allegro5 nie robisz nic na innej bitmapie, tzw buforze :) kurs Allegro5ALLEGRO_BITMAP * img = al_load_bitmap( ".." ); int x = 100, y = 100;
while( petla_glowna ) { al_clear_to_color( al_map_rgb( 0, 0, 0 ) ); al_draw_bitmap( img, x, y, 0 ); x++; y--; al_flip_display(); }
|
|
« 1 » |