Esempio n. 1
0
void Menu::manejarEvento(SDL_Event &evento) {
    if (evento.type == SDL_MOUSEBUTTONDOWN) {
        switch (Boton::obtenerBotonSeleccionado(Menu::botones, NUM_BOTONES)) {
            case BOTON_INICIAR:
                ReproducirSonido(Snd_Click_boton, 100, 0, 0);
                irAEscena("nueva-partida");
                break;
            case BOTON_CONECTAR:
                ReproducirSonido(Snd_Click_boton, 100, 0, 0);
                irAEscena("conectar");
                break;
            case BOTON_EDITAR:
                ReproducirSonido(Snd_Click_boton, 100, 0, 0);
                irAEscena("editar");
                break;
            case BOTON_SALIR:
                ReproducirSonido(Snd_Click_boton, 100, 0, 0);
                terminarJuego();
                break;
            default:
                ;
        }
    }
}
Esempio n. 2
0
int tecla_pulsada(void) {

	float x,y,z;

  Uint8 *keys;

   keys = SDL_GetKeyState(NULL);

	
if (keys[SDLK_ESCAPE])
             		return -1;
 	
if (keys[SDLK_w]) {

			velocidad_r+=0.005f;

	}

	if (keys[SDLK_s]) {
			velocidad_r-=0.006f;
			if (velocidad_r<1.0f)
				velocidad_r=1.0f;

	
	}

	if (keys[SDLK_e]) {


			SDL_WarpMouse(config.SCREEN_SIZE_X/2,config.SCREEN_SIZE_Y/2);

  }

	if (keys[SDLK_q]) {
			SDL_WarpMouse(320,240);
			glMatrixMode(GL_MODELVIEW);
			glLoadIdentity();
			glGetFloatv(GL_MODELVIEW_MATRIX,&camara[0][0]);
			camara[2][2]=1.0f;
			camara[3][2]=-1.0f;


	}
	
 if (keys[SDLK_SPACE]) {
    if (disparo_laser.ttl==0) {
          memcpy(&disparo_laser.posicion[0],&camara[3][0],sizeof(float)*3);
          memcpy(&disparo_laser.direccion[0],&camara[2][0],sizeof(float)*3);
          disparo_laser.posicion[0]+=(0.1f*  disparo_laser.direccion[0]);
          disparo_laser.posicion[1]+=(0.1f*  disparo_laser.direccion[1]);
          disparo_laser.posicion[2]+=(0.1f*  disparo_laser.direccion[2]);

          disparo_laser.ttl=get_timer();
          disparo_laser.color[0]=0.0f;
          disparo_laser.color[1]=0.0f;
          disparo_laser.color[2]=1.0f;
          disparo_laser.color[3]=1.0f;

          /* Reproducimos sonido laser */
          if ( audio_on == 1){
              ReproducirSonido ( 0,disparo_laser.posicion, disparo_laser.direccion,1.0f, 1.0f,10.0f, AL_FALSE);
          }
    }
}
 
     
		
	if (keys[SDLK_p]) {
		  glShadeModel(GL_FLAT);
	}
    if (keys[SDLK_o]) {
		  glShadeModel(GL_SMOOTH);
	}
    if (keys[SDLK_m]) {
		 if ( musica_on == 0 ){
              ReproducirMusica ( );
         }
	}
    if (keys[SDLK_n]){
        if ( audio_on == 1 ){
            ReproducirSonido ( 2, PosSonidoNave1, VelSonidoNave1 ,1.0f,1.0f,0.0f,AL_TRUE);
        }
    }
	if (keys[SDLK_a]) {

		glMatrixMode(GL_MODELVIEW);
		x=camara[3][0];
		y=camara[3][1];
		z=camara[3][2];

		camara[3][0]=0;
		camara[3][1]=0;
		camara[3][2]=0;
		camara[3][3]=1;
		glLoadMatrixf(&camara[0][0]);
		glRotatef(-60.f*intervalo,0.0f,0.0f,1.0f);
		glGetFloatv(GL_MODELVIEW_MATRIX,&camara[0][0]);
		camara[3][0]=x;
		camara[3][1]=y;
		camara[3][2]=z;
		camara[3][3]=1;



	}
	if (keys[SDLK_d]) {

		glMatrixMode(GL_MODELVIEW);
		x=camara[3][0];
		y=camara[3][1];
		z=camara[3][2];

		camara[3][0]=0;
		camara[3][1]=0;
		camara[3][2]=0;
		camara[3][3]=1;
		glLoadMatrixf(&camara[0][0]);
		glRotatef(60.f*intervalo,0.0f,0.0f,1.0f);
		glGetFloatv(GL_MODELVIEW_MATRIX,&camara[0][0]);
		camara[3][0]=x;
		camara[3][1]=y;
		camara[3][2]=z;
		camara[3][3]=1;

	}




return 0;
}