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

[Allegro5] Bitmapy i ich przesuwanie

Ostatnio zmodyfikowano 2010-01-18 20:38
Autor Wiadomość
Drraven
Temat założony przez niniejszego użytkownika
[Allegro5] Bitmapy i ich przesuwanie
» 2010-01-17 20:12:25
Siema.
Piszę grę "Maniek" (coś w stylu mario)
i napotkałem taki problem nie wiem jak przesuwać bitmapę (hero.bmp)

próbowałem:
while( !key[KEY_ESC])
{
  if( key[KEY_LEFT]) ludek_x--;
  if( key[KEY_RIGHT]) ludek_x++;
  if( key[KEY_UP]) ludek_y--;
  if( key[KEY_DOWN]) ludek_y++;

  //clear_to_color(screen, makecol(10,10,10));
  //rest(1);
  masked_blit( ludek, screen, 0,0, ludek_x, ludek_y, ludek->w, ludek->h);
}

jeśli ktoś wie jak to proszę o pomoc.
P-13114
WunM
» 2010-01-17 20:24:33
To na pewno jest Allegro5?
P-13115
malan
» 2010-01-17 23:10:33
1. Użyj podwójnego buforowania (http://kursy.ddt.pl/?LessonId=153).
2. Co dokładnie Ci nie działa, bo patrząc na kod wszystko powinno mniej więcej chodzić.
P-13117
Drraven
Temat założony przez niniejszego użytkownika
» 2010-01-18 15:46:37
ten kod to z easykoder'a jest ale nie wiem jak to zrobić.
u mnie pętla główna wygląda (narazie) jakoś tak:
C/C++
//PĘTLA GŁÓWNA
while( !al_key_down( & key_state, ALLEGRO_KEY_ESCAPE ) )
{

http://alleg.sourceforge.net/a5docs/refman/keyboard.html#TOC-key-codes
tu są kody klawiszy ale czy:
!al_key_klawisz
lub
ALLEGRO_KEY_SPACE,

to te same błędy
mam już podwójne budorowanie
C/C++
// TWORZENIE BUFORA
if( !al_create_display( 640, 480 ) )
{
    std::cout << "Nie udalo sie utworzyc buforu!" << std::endl;
    getchar();
    return;
}

ten kod sam napisałem i teraz pytanie czy to jest dobrze bo

if ( !al_create_display(640,480) )
 tworze ekran.
P-13125
malan
» 2010-01-18 20:38:01
Tuorial easykoder'a jest do allegro, ale w wersji 4.2.2, więc nie dziw się, że program nie działa skoro namieszałeś. Ja bym Ci radził na początek opanować tą starszą wersję allegro, bo jest łatwiejsza, a potem ewentualnie wziąć się za allegro 5 (ale to tylko moje zdanie).

Wracając do tematu... zasada jest ogólnie taka:
1. Tworzenie bufor,
2. Wczytywanie bitmap,
3. Główna pętla (najczęściej while( !key[KEY_ESC] ) (w all 4.2)):
3.1. Czyszczenie bufora,
3.2. Sprawdzanie, czy nie został wciśnięty dany klawisz,
3.3. Wyświetlanie wszystkich bitmap na buforze,
3.4 Wyświetlanie bufora na ekranie (screen),
4. Po wyjściu z pętli:
4.1. Usuwanie bitmap z pamięci.


if ( !al_create_display(640,480) )
 tworze ekran.
Wow, niezły jesteś. Ja bez ekranu długo bym nie pociągnął (okno, nie ekran) :).
P-13131
« 1 »
  Strona 1 z 1