• Olá Visitante, se gosta do forum e pretende contribuir com um donativo para auxiliar nos encargos financeiros inerentes ao alojamento desta plataforma, pode encontrar mais informações sobre os várias formas disponíveis para o fazer no seguinte tópico: leia mais... O seu contributo é importante! Obrigado.

SDL Eventos

Serr@no™

GF Ouro
Membro Inactivo
Entrou
Set 23, 2006
Mensagens
1,690
Gostos Recebidos
0
Agora falarei dos eventos relacionados com o rato e com o teclado. Para isso é preciso perceber o que é um evento... Vejamos este exemplo que fica à espera que o utilizador prima um botão do rato.
TUT_Point whaitForM(){
SDL_Event event;


while (1)
{
while(SDL_PollEvent(&event)) {
// se um botão foi pressionado
if( event.type == SDL_MOUSEBUTTONDOWN )
// retorna o ponto onde houve o clique
return TUT_Point( event.button.x, event.button.y );
}
}
}


struct TUT_Ponto {
int x,y;
TUT_Ponto( int _x, int _y ) : x(_x), y(_y) { }
}:
A estrutura ponto poderia ser algo mais trabalhado (como a realizada na introdução às classes), mas esta como demonstração serve.
O SDL_PollEvent vai ver qual é o evento a ser processado de momento e afecta a variável event com ele, o while(1) é só para ficar ali à espera que o utilizador prima o rato. No TUT_SDL.h estão definidas duas funções TUT_whaitForM() e TUT_whaitForK() que esperam por uma acção do rato ou do teclado respectivamente.
O programa de exemplo que vou deixar aqui é muito simples e usa todos os imensos conceitos falados até aqui
regular_smile.gif

Na verdade existe uma imagem quadrangular que se move, e nós, por intermédio das setas, mudamos a sua direcção e sentido.
Todo o código está comentado e penso ser fácil perceber como tudo funciona. O objectivo deste exemplo era somente mostrar a facilidade de uso da SDL.
 
Topo