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

Animacja, przesuwanie punktu

Ostatnio zmodyfikowano 2012-01-12 21:58
Autor Wiadomość
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?
P-48026
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:
C/C++
enum KIER
{
    UP,
    DOWN,
    RIGHT,
    LEFT,
    NOKIER
};

KIER kier1 = NOKIER;

IF'y:
C/C++
if( kier1 == LEFT ) x--;

if( kier1 == RIGHT ) x++;

if( kier1 == UP ) y--;

if( kier1 == DOWN ) y++;

//tu wprowadzasz własne wartosci!!!
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


P-48027
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 :/
P-48028
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.
P-48029
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 :)
» Kurs Allegro 4.x, C++Podwójne buforowanie lekcja
P-48034
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?
P-48035
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 : )
P-48038
SeaMonster131
» 2012-01-12 21:58:18
W Allegro5 nie robisz nic na innej bitmapie, tzw buforze :)
kurs Allegro5


C/C++
ALLEGRO_BITMAP * img = al_load_bitmap( ".." );
int x = 100, y = 100;


while( petla_glowna )
{
    //jakis timer
   
    al_clear_to_color( al_map_rgb( 0, 0, 0 ) ); //czyszczenie ekranu
   
    //wyswietlanie obiektow np
    al_draw_bitmap( img, x, y, 0 );
   
    x++;
    y--;
   
   
    al_flip_display(); //ta funkcja wyswietlasz bufor
   
}
P-48044
« 1 »
  Strona 1 z 1