Tengo que estudiar, asi que apuntare aqui las cosas que se me van ocurriendo y que tengo que poner en lista de todo's:
1- Poner el tema de las explosiones aisladas en funcionamiento.
2- Hacer mas naves, el resto de TIEs y alguna mediana mas, para dar mas diversidad, asi como meter misiles y laseres verdes para los enemigos.
3- GUI para el juego.
4- Limpiar el codigo.
5- Separar, en las animaciones, las imagenes de sus propiedades si es posible. Esto es, para la logica solo se necesitan medidas y mascaras, no mapas de imagenes. Puede parecer que es una separacion demasiado tenue pero redunda en un cliente mas ligero.
6- Tengo un cliente generico de java. Hacer clientes.
7- He encontrado y deliciouseado una pagina en la que explican como mejorar el loop principal para no tener problemas con ecuaciones no lineales. Vale que no es mi caso ya que no contemplo aceleraciones, pero tal vez en el futuro, otro juego, si. Ademas, en esa pagina vienen algunas cositas para hacer los juegos en red, y tengo que decir, lleno de orgullo y satisfaccion, que ya habia pensado hacer todo lo que he leido para el sevidor y ademas por las razones que dan (basicamente UDP que es un protocolo mas propicio para streaming desde internet y un sistema de id's en los paquetes para desechar los que llegen tarde). Para el cliente, sin embargo, ponen un par de soluciones interesantes que analizare enel futuro.
martes, 31 de agosto de 2010
viernes, 27 de agosto de 2010
Explota, explota me explo.
Bien, es facil, parece que ya me he aclarado con las explosiones:
Usare unas explosiones comunes a todos las naves excepto las rebeldes, de este modo todos los tie explotaran igual independientemente del angulo, las torretas idem... Los corvetes imagino que no...
He hecho una nimacion de prueba con una explosion y se la he metido a ties, el xwing y cañones para probar... a lo sucio... me gusta como queda, lo pondre bien en el codigo pero antes me pondre a estudiar pa setiembre, que ya es hora.
Usare unas explosiones comunes a todos las naves excepto las rebeldes, de este modo todos los tie explotaran igual independientemente del angulo, las torretas idem... Los corvetes imagino que no...
He hecho una nimacion de prueba con una explosion y se la he metido a ties, el xwing y cañones para probar... a lo sucio... me gusta como queda, lo pondre bien en el codigo pero antes me pondre a estudiar pa setiembre, que ya es hora.
viernes, 20 de agosto de 2010
Y mas aun!
Bueno, ayer no escribi asi que voy a aprovechar para escribir como va:
1- He metido tie interceptors que van en la direccion de el xwing (solo se calcula la direccion al se creados) y van bien, disparan bien PERO hay un problem: las explosiones. Son secuencias de 5 frames o mas... merece la pena rotarlos 360 veces para todas las naves? para los corellian si, pero para los tie? como solucionarlo sino? no cambiar nada o hacer explosiones en las que no haya restos identificables? una explosion encima de la imagen? tratar las explosiones diferente al resto de animaciones? ya lo pensare.
2- Los cañones de los corellian ya muestran los reflejos por laser. Mola. Ha sido bastante sencillo. Mola. Eso quiere decir que la estructura es bastante estable.
Añado a la lista de TODO:
-Explosiones, definir.
Retiro:
-Reflejos al disparar
Por cierto: hoy cumplo años.
1- He metido tie interceptors que van en la direccion de el xwing (solo se calcula la direccion al se creados) y van bien, disparan bien PERO hay un problem: las explosiones. Son secuencias de 5 frames o mas... merece la pena rotarlos 360 veces para todas las naves? para los corellian si, pero para los tie? como solucionarlo sino? no cambiar nada o hacer explosiones en las que no haya restos identificables? una explosion encima de la imagen? tratar las explosiones diferente al resto de animaciones? ya lo pensare.
2- Los cañones de los corellian ya muestran los reflejos por laser. Mola. Ha sido bastante sencillo. Mola. Eso quiere decir que la estructura es bastante estable.
Añado a la lista de TODO:
-Explosiones, definir.
Retiro:
-Reflejos al disparar
Por cierto: hoy cumplo años.
miércoles, 18 de agosto de 2010
Inexactitudes
Bueno, parece que me es un poco complicado seguir las intenciones que me marco. Generalmente cuando me pongo a hacer algo y me doy cuenta de que tiene que ver con otra cosa me pongo a hacer esas dos cosas...
Que es lo que me ha ocurrido hoy, de las intenciones de ayer solamente he metido el codigo de la corveta de 90 grados (que se va a fusionar con la normal, me temo, aunque tengo mas cosas que pensar pq por ejemplo no se si tiene sentido tener todas las imagenes en memoria de la corvette rotando, tal vez me valga con 0, 90,180 y 270 grados... o tal vez de 30 en 30... tengo que pensarlo, pero en un rincipio parece que la corvette no va a rotar y que me sobran imagenes, tendre que no crearlas o eliminarlas).
El tema de las mascaras lo he empezado a hacer pero no lo entiendo muy bien... no me parece que sea demasiado eficiente ya que se hacen comparaciones bit a bit... si tenemos una mascara de bits, no seria mejor comparar de 16 en 16 o de 32 en 32? Aparte de que es bastante dependiente de la clase sprite de pygame y no queria depender mucho de pygame (aunque al final en la logica del juego me va a tardar en molestar).
Cosas que SI he hecho:
-He arreglado los problemas que tenia con los disparos (unos errores al dibujarlos). El error se debia a que por defecto se reseteaba a la animacion STAND y no se reseteaba el numero de frame, con lo cual los laseres que venian con angulo y se asignaban a tie interceptors petaban. Es un error bastante complicado de encontrar, he tenido suerte. Tambien he casteado los datos que me aparecian como floats en los paquetes de datos a int pq no tienen sentido los decimales cuando hablamos de pixeles.
-He hecho un universo mayor que la pantalla, ahora el xwing se desplaza por la pantalla y al llegar a cierta distancia del borde la pantalla se desplaza con el hasta llegar al extremo del campo de juego. Es to me sera util cuando sea multiplayer y pueda jugar en red en varias pantallas: se podran mostrar pantalla totalmente independientes y habra momentos en los que los jugadores no se vean entre si de lo lejos que andaran!!!. Ademas, he implementado un rudimentario metodo en la engine para que no pinte lo que no ve cada jugador (las naves/balas que queden fuera de su screen). Estaria bien que no se enviaran los paquetes, ya que significara menos trafico en red, pero tiene su complicacion si quiero un servidor multicast (o no, todavia no lo he hecho).
Cosas que he de hacer:
- Eliminar los paquetes que no se vayan a dibujar (los calculos se haran igual)
- Acabar el tema de las imagenes especiales con los reflejos de los laseres, las explosiones y las muertes
- Hacer funcional el tema de las naves medianas giradas
Pero lo hare en el orden que vaya viendo y tal vez intercale alguna otra cosa que vaya viendo necesaria.
Que es lo que me ha ocurrido hoy, de las intenciones de ayer solamente he metido el codigo de la corveta de 90 grados (que se va a fusionar con la normal, me temo, aunque tengo mas cosas que pensar pq por ejemplo no se si tiene sentido tener todas las imagenes en memoria de la corvette rotando, tal vez me valga con 0, 90,180 y 270 grados... o tal vez de 30 en 30... tengo que pensarlo, pero en un rincipio parece que la corvette no va a rotar y que me sobran imagenes, tendre que no crearlas o eliminarlas).
El tema de las mascaras lo he empezado a hacer pero no lo entiendo muy bien... no me parece que sea demasiado eficiente ya que se hacen comparaciones bit a bit... si tenemos una mascara de bits, no seria mejor comparar de 16 en 16 o de 32 en 32? Aparte de que es bastante dependiente de la clase sprite de pygame y no queria depender mucho de pygame (aunque al final en la logica del juego me va a tardar en molestar).
Cosas que SI he hecho:
-He arreglado los problemas que tenia con los disparos (unos errores al dibujarlos). El error se debia a que por defecto se reseteaba a la animacion STAND y no se reseteaba el numero de frame, con lo cual los laseres que venian con angulo y se asignaban a tie interceptors petaban. Es un error bastante complicado de encontrar, he tenido suerte. Tambien he casteado los datos que me aparecian como floats en los paquetes de datos a int pq no tienen sentido los decimales cuando hablamos de pixeles.
-He hecho un universo mayor que la pantalla, ahora el xwing se desplaza por la pantalla y al llegar a cierta distancia del borde la pantalla se desplaza con el hasta llegar al extremo del campo de juego. Es to me sera util cuando sea multiplayer y pueda jugar en red en varias pantallas: se podran mostrar pantalla totalmente independientes y habra momentos en los que los jugadores no se vean entre si de lo lejos que andaran!!!. Ademas, he implementado un rudimentario metodo en la engine para que no pinte lo que no ve cada jugador (las naves/balas que queden fuera de su screen). Estaria bien que no se enviaran los paquetes, ya que significara menos trafico en red, pero tiene su complicacion si quiero un servidor multicast (o no, todavia no lo he hecho).
Cosas que he de hacer:
- Eliminar los paquetes que no se vayan a dibujar (los calculos se haran igual)
- Acabar el tema de las imagenes especiales con los reflejos de los laseres, las explosiones y las muertes
- Hacer funcional el tema de las naves medianas giradas
Pero lo hare en el orden que vaya viendo y tal vez intercale alguna otra cosa que vaya viendo necesaria.
martes, 17 de agosto de 2010
Y mas!
Bueno, hoy he puesto bonito lo que hice ayer, ahora se le pasan unas constantes mas a la hora de crear cada navecilla en la que se dice que navecillas tienen que hacer flash cuando son alcanzadas. Tengo que meter ahi tambien los frames de cuando se haya disparado (un reflejo del laser en la nave) pero aun no tengo dibujos. Parece que va bien, el xwing ha adquirido las propiedades precisas con solo solicitarlas.
Ademas he modificado el corellian corvette de modo que pueda aparecer con un angulo de 90 grados, tengo que hacerle una estrategia nueva (para naves que van de lado) y tengo que cambiar la animacion de rotacion en la que se le asigna un loop indebido pero no la he podido hacer por no poder acceder al codigo bueno hoy...
Para mañana meto todo en el codigo y tengo que mirar las explosiones de las naves q van en horizontal, que me temo que aun son verticales. Asi como el reflejo del laser al disparar si me da tiempo y sera el copon. Ademas tengo que mirar unos errores que dan al pintar laseres que intuyo que es algun casting que hace mal (mejor dicho, que hasta ahora no era necesario)
Ademas he modificado el corellian corvette de modo que pueda aparecer con un angulo de 90 grados, tengo que hacerle una estrategia nueva (para naves que van de lado) y tengo que cambiar la animacion de rotacion en la que se le asigna un loop indebido pero no la he podido hacer por no poder acceder al codigo bueno hoy... Para mañana meto todo en el codigo y tengo que mirar las explosiones de las naves q van en horizontal, que me temo que aun son verticales. Asi como el reflejo del laser al disparar si me da tiempo y sera el copon. Ademas tengo que mirar unos errores que dan al pintar laseres que intuyo que es algun casting que hace mal (mejor dicho, que hasta ahora no era necesario)
lunes, 16 de agosto de 2010
Que animado!
Bueno, despues de pasar el fin de semana en basuri he continuado hoy con esto y la verdad es que ha avanzado algo:
He arreglado los problemas de reciclaje de los corellian, el tema de que 'apuntaran mal', un dividebyzero exception a la hora de apuntar y he arreglado las explosiones de las torretas... Vamos, que se puede decir que, a falta de dibujar algunos frames, el corellian corvette no tiene mucho mas que hacer...
Luego he hecho, gracias a un metodo de pygame, unas siluetas de las frames de las naves en amarillo y las he colocado dentro de las animaciones de modo que cada vez que una nave -o una torreta- reciba un disparo se dibuje la silueta (esta en amarillo) de la imagen que se deberia mostrar a modo de feedback de que se le ha alcanzado a la nave en cuestion... Esta bastante avanzado, solo me queda generalizarlo -ahora, pòr ejemplo, el xwing solo se pone amarillo si recibe disparos y no se esta desplazando lateralmente, me faltan esas dos animaciones que poner, solo he puesto la por defecto y tengo que pensar como hacer para decidir de una manera mas bella que animaciones deben tener siluetas amarillas y que animaciones no- pero me gusta.
He arreglado los problemas de reciclaje de los corellian, el tema de que 'apuntaran mal', un dividebyzero exception a la hora de apuntar y he arreglado las explosiones de las torretas... Vamos, que se puede decir que, a falta de dibujar algunos frames, el corellian corvette no tiene mucho mas que hacer...
Luego he hecho, gracias a un metodo de pygame, unas siluetas de las frames de las naves en amarillo y las he colocado dentro de las animaciones de modo que cada vez que una nave -o una torreta- reciba un disparo se dibuje la silueta (esta en amarillo) de la imagen que se deberia mostrar a modo de feedback de que se le ha alcanzado a la nave en cuestion... Esta bastante avanzado, solo me queda generalizarlo -ahora, pòr ejemplo, el xwing solo se pone amarillo si recibe disparos y no se esta desplazando lateralmente, me faltan esas dos animaciones que poner, solo he puesto la por defecto y tengo que pensar como hacer para decidir de una manera mas bella que animaciones deben tener siluetas amarillas y que animaciones no- pero me gusta.
viernes, 13 de agosto de 2010
Corelians
Bueno, parece que me repongo:
He introducido el corelian corvete con 2 cañocitos que disparan al jugador. Parece que lo hace bastante bien, me quedaria ajustar un poco la mirilla (que apunten al centro del sprite y no al punto 0,0, aka esquina superior izquierda), ver la recoleccion de corvetes como funciona (creo que en el tema de los decoradores hay algo que no he reseteado bien) y luego retocar el tema de las animaciones que no me convence mucho...
Esta bien, ya empieza a parecer jugable :)
Luego aprovechare para limpiar el codigo de las cosas que han ido quedandose viejas. Pero estoy contentas, he visto cosas en el android market que estan menos avanzadas que esto y si le pusiera contador y fondo empezaria a parecer algo...
He introducido el corelian corvete con 2 cañocitos que disparan al jugador. Parece que lo hace bastante bien, me quedaria ajustar un poco la mirilla (que apunten al centro del sprite y no al punto 0,0, aka esquina superior izquierda), ver la recoleccion de corvetes como funciona (creo que en el tema de los decoradores hay algo que no he reseteado bien) y luego retocar el tema de las animaciones que no me convence mucho... Esta bien, ya empieza a parecer jugable :)
Luego aprovechare para limpiar el codigo de las cosas que han ido quedandose viejas. Pero estoy contentas, he visto cosas en el android market que estan menos avanzadas que esto y si le pusiera contador y fondo empezaria a parecer algo...
Suscribirse a:
Entradas (Atom)