Siguiendo con el texto del post anterior, ete se situa temporalmente un par de dias despues:
Creo que tal vez es demasiado el centrarme ahora en hacer un cliente en java ya que el servidor (la logica) tiene que ser ampliada para que el juego sea realmente jugable (necesito mas naves, mas armas, que las armas puedan evolucionar, mejorar la comunicacion con el jugador, hacer el multiplayer...)
De modo que empiezo por lo facil: un missil que busque a su objetivo (ya tenia algo parecido hecho antes, pero ahora sera una segunda arma del jugador y el codigo ha cambiado bastante). El misil cambiara su direccion un maximo de X cada cierto numero de ciclos N, esto es: cada N' decimas de segundo recalculara su direccion para alcanzar a su objetivo y la modificara a lo sumo en X grados. En el caso de un misil lanzado por el jugador tal vez no ponga limite a los grados ya que de ese modo el misil sera implacable.... o tal vez mejore X segun se suba de nivel... mmmm que buenas ideas tengo mientras escribo.
Ademas he introducido ciertas mejoras en el servidor del juego:
Necesito cargar la libreria grafica para usar el motor aunque este no tenga que dibujar nada!!!
Es un 'fallo de diseño', mas bien un TODO... El asunto es que despues de coger las imagenes del archivo de imagenes de cada nave, se calculan diversas mascaras para cada imagen y ademas se guardan copias de las imagenes rotadas para no tener que rotarlas en tiempo de ejecucion (al final el tiempo de carga del juego es irrelevante aun), de esas rotaciones obtengo el ancho y el alto (que son cosas que cambian como se ve en la foto adjunta) y las utilizo, en la logica del juego, para detectar las colisiones. En el futuro podria guardar estas coordenadas en algun archivo externo y leerlas de nuevo para que el servidor sea completamente independiente de la ligreria grafica (pygame en python).
Al probarlo en casa de amaia, al cargar la libreria grafica en el servidor (que estaba en mi casa) se abria una ventana que tenia que redirigir por ssh (con el modificador -X) a el ordenador donde estaba el cliente (amaia-enea) y parece ser que mandaba refrescos de pantalla por el ssh y aquello no iba...
Actualmente se carga la libreria antes de cargar las animaciones y se descarga justo despues, cerrandose la pantalla, debiera funcionar.
El cliente:
He cambiado varias cosas:
Ahora actualiza la posicionde lo que se muestra por pantalla en el universo (hace que al llegar la nave del jugador a un borde en vez de pararse hace que todo se desplace en el sentido contrario)
Salian 'parpadeos' en la pantalla, para corregirlos he tomado una medida en el motor del cliente:
Se dibuja por doble buffer: una pantalla se esta mostrando mientras se va construyendo otra por detras: primero se pinta entera del color del fondo y luego se van poniendo los diversos objetos y al acabar se intercambian: la que se muestra pasa al inframundo y la que se estaba construyendo pasa a ser la mostrada. Todo muchas veces por segundo (ciclos). Ahora lo que hago es no ejecutar el ciclo de dibujado si no hay nada que pintar (ya que me intercambia la pantalla principal con una que esta en el color de fondo, lo que significa que todo parpadee)
No hay comentarios:
Publicar un comentario