- 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.
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
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.
A estrutura ponto poderia ser algo mais trabalhado (como a realizada na introdução às classes), mas esta como demonstração serve.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) { }
}:
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

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.