Cita de: eferion en 27 Febrero 2015, 10:10 AM
Tu problema se debe a un mal diseño.
La respuesta simple es que lees del teclado en funciones diferentes, por lo que si decides mover la nave pero la pulsación de la tecla la recibe la función que lanza las balas... pues ni lanzas bala ni te mueves.
La respuesta técnica es que estás asignando demasiadas responsabilidades a las clases:
* La clase nave debería encargarse de almacenar la información de la nave. No debería saber pintarse ni tampoco interpretar las teclas para moverse. Lo mismo es aplicable para bala y asteroide
* Para pintar el escenario lo ideal sería tener una clase nueva, por ejemplo class Escena, a la que le facilitas la nave, los asteroides y las balas y ella se encarga de representar todo
* El control del teclado debe estar centralizado en un único punto y, en función de la tecla que se pulse, realizar una acción u otra.
Tu piensa que una clase no debe ser algo mastodóntico. Es mucho mejor crear clases sencillas con responsabilidades bien definidas. Si, por ejemplo, cargas a la clase "Nave" con la responsabilidad de saber pintarse y después resulta que tienes que hacer que el juego funcione tanto en consola como con opengl, vas a llenar la clase de código que no necesita... eso es mejor dejárselo a otra clase diferente.
Un saludo.
Gracias por la información, todavia estoy aprendiendo como ves. Gracias por la explicación, me pondré a corregirlo.
Un saludo y gracias de nuevo.