Ahora me he puesto a hacer una nueva clase que contenga las imagenes y los rectangulos que se van a dibujar... Vale, eso se llama sprite, pero no acabo de ver que tenga que controlar las colisiones tambien... en pygame originalmente no se hacia en la clase sprite y seguramente si han evolucionado a ese modelo es por algo... pero ahora mismo a mi no me convence tal y como esta en mi juego....
Ademas tengo pensado que las imagenes tengan distintas filas de sprites para distintos estados, por ejemplo 3 para que si no se pulsa ningun boton el motor de la nave saque fuego moviendosse, 3 de la nave con distinta inclinacion a la derecha, 3 a la izquierda, 3 para la explosion.... introducire en esa clase la logica de cambio de fila y comportamiento (por ejemplo en la explosion, que despues de dibujar todos sus sprites ese objeto no tiene que volver a dibujarse...) a la hora de recorrerla en la nueva clase.
Funciona bien por ahora, tiene las imagenes, el numero de sprites en los que se divide la imagen en X, lo mismo en Y, el ancho y el alto de cada sprite... desafortunadamente por ahora los sprites solo avanzan en X
Ahora tengo que cambiar las imagenes por indexes de imagenes para allanar el camino de lo siguiente que tengo en mente:
Proximo TODO: Un motor
Se trata de un objeto al que se le pasan una serie de cosas que hay que dibujar a una cola y el las dibuja...
Tiene sus cosas buenas y sus cosas malas, a saber:
-Podre hacer que se pueda utilizar en red, con solo poner un protocolo que me mande objetos como los que interpreta el motor, lo cual puede parecer absurdo en un matamarcianos pero quien sabe, igual queda bien.
-Me van a sobrar bastantes cosas de pygame.sprite (por esto he dicho que no me convencia), al motor NO pueden llegar sprites ya que estos contienen una imagen (o una referencia a una imagen, vaya) y un rectangulo... y esas cosas ocupan mucho, o al menos no se cual es su tamaño, como para mandarlas por internet... tendre que hacer mis propias 'referencias' de imagenes en una lista interna con todas las imagenes y pasarle esta referencia, las coordenadas y las coordenadas del sprite a dibujar dentro de la imagen. 5 enteros, 2 + 2 + 1 + 1 + 2 bytes.
Esta hecho pero no probado, mañana le doy cera, solo hay que cambiar el draw the el DefaultSprite, el resto cambiado y funciona.
No hay comentarios:
Publicar un comentario