A continuación les presento un juego simple desarrollado en Action! , fue hecho hace mucho tiempo como el 2008 la idea de este juego era ver que tal era este lenguaje de ATARI para el desarrollo de juegos. Para ello use como idea un juego de tipo habilidad llamado "Simon Like Memory"

Este juego es parecido al Simón, repite la secuencia de saltos que te marca el computador sin equivocarte. Después de un análisis rápido del juego, me di cuenta que solo necesito 2 cosas fundamentales un vector para guardar los movimientos del computador y lo otro un generador de numero aleatorios para seleccionar cada monito.  Bueno veamos el código del juego:

Como se puede ver tiene comandos similares a ATARI BASIC por ejemplo GRAPHICS, POSITION, POKE y PEEK. Ahora veamos en forma general que hace cada rutina y funciones de este programa.

Partimos con las 2 líneas que son comentarios, para poner comentarios se debe iniciar la línea con ;

INCLUDE "H:RUNTIME.ACT"
INCLUDE "H:CHR.ACT"

Seguimos con las 2 siguientes líneas que con incluye de librerías en Action!, la primera es la RUNTIME que se usar para hacer un ejecutable ATARI (.xex), la otra es una hecha por mí para la redefinición  del set de caracteres.

CARD CH
BYTE K,I,JM,J,AZAR,N,V
BYTE ARRAY MEMORIA(30),CARA(3)
BYTE ARRAY M1=[100 100 100 100 85 90 100 105 100]

Declaramos las variables necesarias para usar. Las más destacables son CH que se usa para la redefinición  del set de caracteres, MEMORIA vector que guarda los movimientos que realizara la máquina.

PROC PAUSA(BYTE N)
...
RETURN

Rutina que genera una pausa para movimientos de figuras y música, ya que Action! Es muy rápido al ejecutar instrucciones.

PROC MJG()
...
RETURN

Rutina de sonido FX para el movimiento de la flecha del jugador.

PROC PANT1()
...
RETURN

Rutina que dibuja la primera pantalla principal del juego.

PROC MOVER(BYTE M)
...
RETURN

Rutina que mueve los monitos según el número al azar pensado por la máquina.

BYTE FUNC JUGADOR()
...
RETURN(Q)

Función que permite mover la flecha seleccionadora del jugador.

PROC FALLO()
...
RETURN

Rutina cuando el jugador falla la secuencia.

PROC FIN()
...
RETURN

Rutina de fin del juego “GAME OVER” del jugador.

PROC COLORES()
...
RETURN

Rutina que cambia colores de los monitos según el nivel que haz pasado.

PROC EFECTO()
...
RETURN

Rutina de efecto DLI

PROC MENSAJE(BYTE L)
...
RETURN

Rutina para enviar mensajes por pantalla

PROC INICIA()
...
RETURN

Asignación de memoria y seteo para redefinición del set de caracteres.

PROC MAIN()
...
RETURN

Y por último el programa principal del juego. Como se puede observar tiene 2 ciclos principales para el juego uno infinito y el otro que no le queden más oportunidades al jugador. Dentro de este está todas las llamadas a las rutinas y funciones para darle jugabilidad  al juego.

Espero que con esto haya quedado un poco más claro cómo hacer un pequeño juego en Action!

Bajar Binario XEX o los Fuentes en Action!