Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <allegro5/allegro.h>
- #include <allegro5/allegro_image.h>
- int main()
- {
- ALLEGRO_DISPLAY *display = NULL;
- ALLEGRO_EVENT_QUEUE *queue = NULL;
- ALLEGRO_BITMAP *fondo = NULL;
- ALLEGRO_BITMAP *player = NULL;
- al_init();
- al_init_image_addon();
- al_install_keyboard();
- queue = al_create_event_queue();
- fondo = al_load_bitmap("bg.png");
- player = al_load_bitmap("player.png");
- display = al_create_display(900, 600);
- al_register_event_source(queue, al_get_keyboard_event_source());
- int frameNumber = 1;
- int drawFrame = 0;
- int Xmin = 0;
- int Xmax = 699;
- int Ymin = 459;
- int posX = 500;
- int posY = 300;
- int speed;
- int flag = NULL;
- int jumpSpeed;
- bool isGrounded = true;
- bool done = false;
- ALLEGRO_EVENT evento;
- while(!done)
- {
- if (posY >= Ymin)
- {
- isGrounded = true;
- posY = Ymin;
- speed = 0;
- jumpSpeed = 0;
- }
- else
- isGrounded = false;
- if (!isGrounded)
- {
- posY = posY + speed;
- if (jumpSpeed > 0)
- {
- speed -= 5;
- jumpSpeed -= 5;
- }
- else
- speed += 5;
- }
- if(!al_is_event_queue_empty(queue))
- {
- al_get_next_event(queue, &evento);
- switch (evento.keyboard.keycode)
- {
- case ALLEGRO_KEY_UP:
- if (isGrounded)
- {
- jumpSpeed = 30;
- isGrounded = false;
- posY -= 1;
- }
- break;
- case ALLEGRO_KEY_LEFT:
- if (posX > Xmin)
- {
- if (isGrounded)
- {
- posX -= 30;
- drawFrame = frameNumber * 26;
- }
- else
- {
- posX -= 15;
- drawFrame = 130;
- }
- flag = NULL;
- }
- al_rest(0.05);
- break;
- case ALLEGRO_KEY_RIGHT:
- if (posX < Xmax)
- {
- if (isGrounded)
- {
- posX += 30;
- drawFrame = frameNumber * 26;
- }
- else
- {
- posX += 15;
- drawFrame = 130;
- }
- flag = ALLEGRO_FLIP_HORIZONTAL;
- }
- al_rest(0.05);
- break;
- case ALLEGRO_KEY_ESCAPE:
- done = true;
- default:
- break;
- }
- frameNumber += 1;
- if (frameNumber > 4)
- frameNumber = 1;
- al_flush_event_queue(queue);
- }
- else if (al_is_event_queue_empty(queue))
- {
- if(isGrounded)
- drawFrame = 0;
- else
- drawFrame = 130;
- }
- al_draw_scaled_bitmap(fondo, 0, 0, 300, 200, 0, 0, 900, 600, NULL);
- al_draw_scaled_bitmap(player, drawFrame, 0, 26, 30, posX, posY, 78, 90, flag);
- al_flip_display();
- }
- al_destroy_bitmap(fondo);
- al_destroy_display(display);
- al_destroy_event_queue(queue);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement