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

[ALLEGRO 5] KEY QUEUE

Ostatnio zmodyfikowano 2012-10-09 18:07
Autor Wiadomość
Kmicic
Temat założony przez niniejszego użytkownika
[ALLEGRO 5] KEY QUEUE
» 2012-10-09 17:58:43
Prosił bym o wytłumaczenie z tego kodu"
-Co ma na celu ta poczekalnia klawiszy.
-Co ma na celu ta linijka:
al_register_event_source(event_queue, al_get_keyboard_event_source()); i
al_wait_for_event(event_queue, &events);

 

C/C++
case ALLEGRO_KEY_DOWN:
y += moveSpeed;
skąd to moveSpeed, co to robi i czemu w kodzie nie jest zadeklarowane.


KOD:

C/C++
#include<allegro5\allegro5.h>
#include<allegro5\allegro_native_dialog.h>
#include<allegro5\allegro_primitives.h>

#define ScreenWidth 800
#define ScreenHeight 600

int main()
{
    ALLEGRO_DISPLAY * display;
   
    display = al_create_display( ScreenWidth, ScreenHeight );
   
    al_set_window_position( display, 200, 200 );
   
    bool done = false;
    int x = 10, y = 10, moveSpeed = 5;
   
    al_init_primitives_addon();
    al_install_keyboard();
   
    ALLEGRO_EVENT_QUEUE * event_queue = al_create_event_queue();
    al_register_event_source( event_queue, al_get_keyboard_event_source() );
   
    while( !done )
    {
        ALLEGRO_EVENT events;
        al_wait_for_event( event_queue, & events );
       
        if( events.type == ALLEGRO_EVENT_KEY_DOWN )
        {
            switch( events.keyboard.keycode )
            {
            case ALLEGRO_KEY_DOWN:
                y += moveSpeed;
                break;
            case ALLEGRO_KEY_UP:
                y -= moveSpeed;
                break;
            case ALLEGRO_KEY_RIGHT:
                x += moveSpeed;
                break;
            case ALLEGRO_KEY_LEFT:
                x -= moveSpeed;
                break;
            case ALLEGRO_KEY_ESCAPE:
                done = true;
                break;
            }
        }
       
        al_draw_rectangle( x, y, x + 10, y + 10, al_map_rgb( 44, 117, 255 ), 1 );
        al_flip_display();
        al_clear_to_color( al_map_rgb( 0, 0, 0 ) );
    }
    al_destroy_display( display );
    al_destroy_event_queue( event_queue );
   
    return 0;
}
P-66507
SeaMonster131
» 2012-10-09 18:07:23
al_register_event_source( event_queue, al_get_keyboard_event_source() );

"Zarejestrowanie" klawiatury by program odbierał jej zdarzenia.

al_wait_for_event( event_queue, & events );

Czekanie na jakieś zdarzenie.

skąd to moveSpeed, co to robi i czemu w kodzie nie jest zadeklarowane.

Znasz wg C++? I z tego co widzę, to zmienna moveSpeed jest zadeklarowana.
P-66512
« 1 »
  Strona 1 z 1