Ver Mensaje Individual
  #4 (permalink)  
Antiguo 01/10/2012, 10:27
Avatar de L3m0n
L3m0n
 
Fecha de Ingreso: diciembre-2011
Mensajes: 219
Antigüedad: 13 años
Puntos: 46
Respuesta: Una variable no cambia de valor.

Bueno, antes de todo te voy a hacer una recomendacion, no te lo tomes a mal xD

Procura escribir un codigo mas claro, me explico, el codigo que has escrito se entiende, pero cuesta lo suyo entenderlo y es un tanto complicado de leer. Recuerda que tienes que hacer codigo que cualquier programador pueda entender. Pero vamos esto se gana trabajando en cualquier proyecto de open source en el cual te pegaran la bronca, en el buen sentido, por escribir un codigo dificil de leer (esto me paso a mi xDD)


Bueno vamos a tu problema:

Creo haber entendido como funciona tu programa y el error del disparo es un error simple, pero que por culpa de todas las variables que hay en uso se hace un caos.

El problema es que tienes dos variables (balax y balay) estas variables son las encargadas de la posicion de la bala que luego son pasadas al rectangulo. Tienes varias cosas en el codigo que sobran pero vamos, primero que funcione y luego lo demas.

Bueno el problema que creo que tiene tu programa es que estas variables que deberian variar segun la posicion del coche(he entendido yo del programa) permanecen invariables durante todo el programa y esto es lo que hace que la bala salga siempre del mismo sitio, ya que se usan estas variables para designar el origen del disparo.

La solucion=> Debes hacer que estas variables varien segun la posicion del automovil. Por lo tanto cada vez que hagas un disparo debes hacer
Código C:
Ver original
  1. balax = x;
  2. balay = y;
y esto creo yo deberia solucionar el problema.



PD: Un consejo, ademas de hacer el codigo claro, en el game loop yo creo que es mas claro si se hace en este orden
Código C:
Ver original
  1. gameloop
  2. {
  3.     eventos();
  4.     logica();
  5.     render();
  6. }

No tienes porque hacerlo asi, el orden da lo mismo, pero yo creo que queda mucho mas claro, pero vamos.


Saludos.