Eventos do SDL ~ Enfrentando problemas

1. Eventos do SDL ~ Enfrentando problemas

Pythonux
bielinux

(usa Ubuntu)

Enviado em 18/01/2016 - 18:09h

Boa noite...
Estou aprendendo SDL e de repente, cheguei àquela situação desesperada e desconfortável que todos os programadores que encaram algo novo sempre confrontam-se: OS ERROS DE PROGRAMAÇÃO!

O programa abaixo tem como missão a possibilidade do jogador controlar uma imagem por meio das teclas direcionais do teclado, mas o problema é que isto nem ocorre.

Eis o fonte (compilado e devidamente testado com o g++ - e sim, sei que devia ter colocado um if para checar se a imagem bmp foi devidamente carregada, mas isso farei mais tarde):

#include <iostream>
using namespace std;
#include <SDL/SDL.h>

int main(int argc, char **argv){
if(SDL_Init(SDL_INIT_EVERYTHING) < 0){
cout << "Error: failed to init SDL!" << endl;
return 1;
}

atexit(SDL_Quit);

SDL_Rect size;
size.x = 320;
size.y = 200;

SDL_Surface *screen;
SDL_Surface *tux;

screen = SDL_SetVideoMode(640, 400, 8, SDL_HWSURFACE);
tux = SDL_LoadBMP("tux.bmp");

if(screen == NULL){
cout << "Error: failed to create window" << endl;
return 1;
}

SDL_WM_SetCaption("Grand Theft Tux 5", NULL);

SDL_BlitSurface(tux, NULL, screen, &size);
SDL_Flip(screen);

bool running = true;
SDL_Event *e = new SDL_Event();

while(running && e->type != SDL_QUIT){
SDL_PollEvent(e);

switch(e->type){
case SDL_KEYDOWN:
switch(e->key.keysym.sym){
case SDLK_UP:
size.y -= 10;
SDL_Flip(screen);
break;

case SDLK_DOWN:
size.y += 10;
SDL_Flip(screen);
break;

case SDLK_LEFT:
size.x -= 10;
SDL_Flip(screen);
break;

case SDLK_RIGHT:
size.x += 10;
SDL_Flip(screen);
break;
}
}
}

return 0;
}



  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts