31 de enero de 2011

iPad Test Movimiento 002 - GLBasic - 60 FPS

Segunda prueba de rendimiento para iPad. Muestra el desplazamiento del mapa asi como el funcionamiento de la función FINDPATH, las luces, sistema de puertas y rotación de pantalla. 58-60 FPS.

Acelerón de fin de semana...

Fin de semana con muchos avances. He probado la aplicación en el iPad, que ya había avanzado bastantes versiones que no lo hacía. Todo correcto.

El problema de velocidad que se me presentó con la función FINDPATH ha sido solventada. Enlace del foro donde comento el asunto aquí.

Avances realizados en el proyecto:

- Rutina CODEPRINT para pintado de textos en colores y con tiempo/trigger para activación y desactivación terminada y depurada.

- Función de control de puertas terminada y depurada. Integrada en fichero mapa al guardar.

- Rutina de detección de trampas finalizada y depurada.

- Reajustados parámetros de matrices para velocidad y optimización del bucle principal.

- Sistema de interruptores de luz ambiente simple terminado.

- Implementación de rutina de rotación de pantalla con OpenGL. Ver imagen para el bug que me ocupa ahora... La correcta orientación con respecto a la barra de aplicaciones.

-Control de eventos terminado. Implementada AUTOPAUSE y multitarea para iOS 4.x.

Como se puede ver... un fin de semana de lo más productivo ;)

27 de enero de 2011

Pequeñas novedades...

Aunque parezca que estoy desconectado, en realidad sigo trabajando en la sombra... He optimizando el código de animación del mapa+personaje principal y la interactividad de éste con el entorno.

Los "switch/traps" (trampas) introducidas en el escenario ya funcionan como deberían, así como la apertura/cierre de puertas...


Inspirado por los clásicos juegos de aventuras de Lucasarts (Wikipedia), he decidido implementar una tipografía similar. He añadido también al código general una pequeña función mía que sirve para poder representar los textos en diferentes colores dentro de una misma línea... ésto me permitirá resaltar nombres u objetos dentro de un mensaje...


Captura del código fuente de la rutina mencionada de tipografías que utilizo para los diferentes colores dentro de una frase/párrafo... No tiene más misterio que lo que se muestra. ;-)


Otra de las novedades es la inclusión de una "luz ambiente" al mapa que se puede modificar en tiempo real por switches. La captura muestra la sala a oscuras y simula un haz de luz de linterna (siempre que se posea el objeto, claro está)... poco a poco... ;-)

11 de enero de 2011

Estado actual del proyecto...

Resumo aquí los cambios más destacados realizados al programa.

La causa principal de éstas modificaciones es la adaptacion del juego al formato de pantalla del iPad (1024x768 pixels). Como he ido narrando en el blog, he hecho test independientes de algunas rutinas que en Windows/iPhone ya tenía controladas sobretodo en cuanto al rendimiento y tamaño de la pantalla.


Inicialmente el tamaño de pantalla objetivo era la de iPhone. Se dedicaba casi 1/3 de ésta para alojar los botones de acción y panel con datos del juego. Dada la resolución elegida sólo se podia representar una sección del mapa de 7x7 tiles de 46x46 pixels.

Hay que recordar que al inicio del proyecto, GLBasic no soportaba Retina Display en iOS. (Esta resolución de vídeo quiero tratarla más adelante, cuando tenga el juego finalizado; parece ser que actualmente se han detectado algunos problemas de coordenadas).


El control de movimiento del personaje también ha sido cambiado. He dejado a probar a algunas personas el antiguo control de trazar el camino y la mayoría de ellas preferían la opción de hacer tap para marcar la posición de destino en contra del control propuesto. No descarto incluir también el otro modo de forma opcional. De esta forma he decidido controlar al personaje con la función FINDPATH.


He limpiado el código para optimizar y simplificar en lo más básico, intentado no emplear más variables de las justas. Tras algunos debugeos se puede ver en las capturas la totalidad de variables que se emplean.


Actualmente el juego carga un mapa del tamaño XY que se quiera, tan sólo hay que pasarle las coordenadas de salida y entrada del personaje y el tamaño ancho-alto del nivel. Éste se carga y representa adecuadamente en pantalla en función del tamaño y se recorta para dibujar sólo los tiles que se necesitan. El control de timer también se ha optmizado para el iPad, así como la animación del personaje principal. Editor de muros añadido...

Lo siguiente es afrontar la inclusión de objetos, así como otros personajes en el mapa... también voy a implementar la rutina de triggers de puertas y objetos en breve ya que es una función que ya tengo preparada; espero avanzar bastante en poco tiempo...

De momento, voy a ir pasando por caja... a renovar mi licencia del programa iOS.

10 de enero de 2011

iPad Test Movimiento - GLBasic - 60 FPS

Dibujado completo del mapa en el iPad. Muestra el desplazamiento del mapa asi como el funcionamiento de la función FINDPATH. 58-60 FPS. Multitarea funcionando.


La calidad de la iluminación y enfoque en el vídeo es pésima, aunque se aprecia el movimiento del personaje.

8 de enero de 2011