Estoy haciendo un primer videojuego para irme familiarizando con la SDL.
Mi intencion es queque cuando pulso la tecla "a" el personaje debe disparar una bola de fuego, el problema es que ,curiosamente, si mantengo pulsada la tecla "a" dispara 200 bolas de fuego seguidas en cuestion de milisegundos. (provocando un error de segmentacion, ya que
el array de bolas no es tan grande).
Lo que me gustaria saber es como implementar que si la tecla es pulsada dispare, pero no vuelva a disparar hasta que suelten la tecla y la vuelvan a pulsar para así eliminar el efecto "ametralladora" que se esta produciendo.
La seccion del codigo donde compruebo si se pulsa la tecla a:
- Código: Seleccionar todo
if (key[SDLK_a]) {
unsigned ind = buscar (); //buscamos la primera bola libre
bolas[ind].x_ = x_; //posicion bola = posicion personaje
bolas[ind].y_ = y_;
bolas[ind].estado_ = estado_;//sentido bola = direccion personaje
std::cout << "bola " << ind << std::endl;
}
Y llamo a la funcion que comprueba si el usuario pulsa la tecla "a" una vez
por iteracion de game loop.
Que deberia modificar? Que deberia añadir?
Espero no haber resultado muy lioso.
1 saludo y muchas gracias