SDL erro compilação event.button.clicks

0 respostas
programação
mmrosa

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   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
    {


        //  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;
}
Criado 6 de março de 2017
Respostas 0
Participantes 1