Pessoal estou com o seguinte erro quando vou compilar meu código:
gcc mousemotion.c -o mm -lSDL -lSDL_image
mousemotion.c:
In function ‘main’:
mousemotion.c:68:31: error: ‘SDL_MouseButtonEvent {aka struct SDL_MouseButtonEvent}’ has no member named ‘clicks’
if(event.button.clicks == 2)
Estou achando que esse erro é referente a versão do sdl que estou usando que é a versão 1.2, até o momento não tinha feito detecção do mouse em meus códigos, tudo era feito via teclado, o engraçado que só dá problema na compilação quando uso o 'event.button.clicks'.
Como posso resolver o problema?
Segue o código:
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
SDL_Init(SDL_INIT_VIDEO); // Inicializa o SDL e o sistema de vídeo
IMG_Init(IMG_INIT_PNG);
// criando surface's
SDL_Surface *tela;
SDL_Surface *fundomenu;
SDL_Surface *buttonIniciar;
SDL_Surface *buttonAux;
SDL_Surface *buttonIniciarP;
SDL_Event event; // Para os eventos
tela = SDL_SetVideoMode(760, 600, 16, SDL_HWSURFACE|SDL_DOUBLEBUF); // Cria a janela
SDL_WM_SetCaption("'_'Bomberman'_'",NULL); // escrever mensagem na barra da tela
// carregando imagens
fundomenu = IMG_Load("imagem_menu5.png"); // fundo tela
buttonIniciar = IMG_Load("button_iniciar0.png"); // icone
buttonIniciarP = IMG_Load("button_iniciar.png"); // icone
// rects
SDL_Rect dest_bi;
dest_bi.x = 520;
dest_bi.y = 118;
// variaveis para o controle do icone no eixo y
int y = 0;
int i = 0;
int enter = 0;
int done = 0; // Variável de controle do loop
while (done == 0) // Loop principal
{
// Lê a fila de eventos e põe o evento mais antigo em "event"
while (SDL_PollEvent(&event)) // Loop de eventos
{
// Verifica se o evento mais antigo é do tipo SDL_QUIT
if (event.type == SDL_QUIT) // Se o usuário clicou para fechar a janela
done = 1; // Encerre o loop
if(event.type == SDL_MOUSEMOTION)
{
//printf("%d\n",event.button.y);
if((event.button.x >= 520 && event.button.x <= 660) && (event.button.y >= 118 && event.button.y <= 164))
{
//printf("estou no 1 icone!%d\n",i++);
buttonIniciar = buttonIniciarP;
if(event.type == SDL_MOUSEBUTTONUP)
{
if(event.button.clicks == 2)
{
printf("Cliquei no icone iniciar\n");
}
}
}
//buttonIniciar = IMG_Load("button_iniciar0.png");
}
}
SDL_BlitSurface(fundomenu,NULL,tela,NULL); // Blita a imagem em dest
SDL_BlitSurface(buttonIniciar,NULL,tela,&dest_bi); // Blita a imagem em dest
SDL_Delay(60); // Espera 60 milissegundos
SDL_Flip(tela);
}
SDL_Quit(); // Fecha o SDL
IMG_Quit();
return 0;
}