"Toru
Iwatani se inspiró en una historia infantil sobre una
criatura que protegía a los niños de los monstruos al comerlos. Uno de los
métodos de diseño de Iwatani incluía tomar palabras clave asociadas con una
historia para ayudarlo a desarrollar sus ideas. La palabra kanji taberu
("comer") se convirtió en la premisa del juego.
La historia de los niños también incluía el
concepto de kokoro ("espíritu") o una fuerza vital utilizada por la
criatura que le permitió comerse a los monstruos. Toru incorporó este aspecto
de la historia como cuatro bolitas de poder comestibles en el laberinto que
cambian las suerte de los fantasmas, haciéndolos vulnerables a ser comidos por
Pac-man".
El dossier de Pac-Man
OBJECTS
Vamos a cambiar las reglas de juego introduciendo objetos mágicos. Abrimos el editor MPAGD. Abrimos el proyecto Pacman.
Selecciona la opción "Objects" del menú "Editor" de tu MPAGD.
Object 000 Room 000
Dibuja pixel a pixel. Toma referencias contando los pixeles para que te salga idéntico al de la figura. Una vez dibujado, con las teclas "AvPág" y "RePág" le asignamos una pantalla. En nuestro caso será "el laberinto" (Room 000)
"kokoro" puede tomar la apariencia del "Object 000".
Pulsamos "x" (insertar nuevo Objeto) y dibujamos el siguiente:
Object 001 Room 000
Uno más. Volvemos a pulsar "x" para insertar un objeto más:
Object 002 Room 000
Le toca al último:
Object 003 Room 000
Colocaremos ahora cada objeto (kokoro) en su lugar. Hazlo de esta manera: Empieza en la opción "Objects" del menú "Editor". Con las teclas "1" y "2" selecciona el objeto, presiona la tecla "p" y te transportas a la habitación (nivel o pantalla) correspondiente (el concepto "habitación" te puede dar una idea de la utilidad de los objetos en un juego de aventuras).
Coloca cada objeto en su sitio repitiendo el proceso.
Posición del objeto 000
Posición del objeto 001
Posición del objeto 002
Posición del objeto 003
BLOQUES, PLAYER, SPRITES Y OBJETOS
Una parada en el camino. Vamos a reflexionar sobre cuándo, cómo y dónde usar estos cuatro elementos en nuestros juegos.
El bloque (8x8, tinta y papel) es un adorno, es el fondo de escena. Hay bloques especiales (LADDERBLOCK, FODDERBLOCK, DEADLYBLOCK, CUSTOMBLOCK, COLLECTABLE) pero siempre los usaremos como elementos de escenario. Para juegos como el Pac-man y juegos de plataformas, de niveles o vertical, en los que el escenario define la lógica y mecánica, la elección es contar con ellos.
El objeto (16x16, sólo tinta). tiene más significado narrativo, es mas grande y se puede cargar en un inventario. Cada objeto es único y está asociado a una pantalla, la manera de coleccionar objetos es a través del inventario mediante los comandos INV, PUT, GET y la variable OBJ. Tiene mucha utilidad en género de aventuras.
Sprites (16x16, tinta y papel). Suelen ser enemigos o mecanismos, artefactos, poseen animación y un script tipo para programación. Además gestionan propiedades y Datos.
Player (16x16, tinta y papel). Es un Sprite especial por que se puede controlar con el teclado. La elección es clara. Todo lo que quieras controlar será a través de él. Podemos animar 12 Sprites a una velocidad más que suficiente.
GETBLOCKS
Este comando devuelve el tipo de bloque con el que colisiona el Sprite y lo reserva en la variable BLOCK.
Según esto. Es correcto usar un Bloque para "Kokoro" (CUSTOMBLOCK).
GETBLOCK nos proporciona el mecanismo para detectar EMPTYBLOCK, PLATFORMBLOCK, WALLBLOCK, LADDERBLOCK, FODDERBLOCK, DEADLYBLOCK y CUSTOMBLOCK. Podemos editar algo así:
GETBLOCKS ; COME COCOS
IF BLOCK = CUSTOMBLOCK
; COME BOLA ENERGIZANTE
ENDIF
DETECTOBJ
En nuestro caso, escogemos el comando DETECTOBJ. Usaremos un Objeto para representar a "kokoro" por su tamaño (16x16). La herramienta "inventario" que integra DETECTOBJ no la vamos a necesitar. No es la decisión más correcta. Para nuestra defensa diré que "Kokoro" es algo más que un bloque de 8x8.
Para usar esto insertaremos después de la sección de control en EVENT PLAYER.
DETECTOBJ ; Para las PILDORAS
IF OBJ < 4 ; es una PILDORA DE PODER
ADD 1 TO D ; cuenta PILDORAS PODER.
SCORE 50 ; suma 50 al marcador.
;BEEP 3 ; "gulp"
AT 22 2
SHOWSCORE ; actualizar marcador.
LET M = 200 ; activar modo Asustado, encender cronómetro.
GET OBJ ; COME
ENDIF
El comando DETECTOBJ devuelve el objeto que colisiona con el jugador en la variable OBJ.
Si OBJ corresponde a nuestros objetos 0,1,2 o 3 entonces desencadenamos los siguientes mecanismos: activar modo Asustado, encender cronómetro, contar píldoras, sumar marcador, coger objeto y actualizar marcador, reproducir un efecto de sonido (Estos mecanismos los vamos a dejar para otra micro-sesión.).
EVENT PLAYER
Selecciona la opción "Player" del menú "Events". Deberás editarlo para quedar así:
EVENT PLAYER
; Pacman
AT 0 15 DISPLAY N
SPRITEINK 14
; Control
IF KEY UP
IF CANGOUP
DIRECTION = UP
ENDIF
ENDIF
IF KEY DOWN
IF CANGODOWN
DIRECTION = DOWN
ENDIF
ENDIF
IF KEY LEFT
IF CANGOLEFT
DIRECTION = LEFT
ENDIF
ENDIF
IF KEY RIGHT
IF CANGORIGHT
DIRECTION = RIGHT
ENDIF
ENDIF
; movimiento
IF DIRECTION = UP
IF CANGOUP
SPRITEUP
LET IMAGE = 2
ANIMATE
ENDIF
ENDIF
IF DIRECTION = DOWN
IF CANGODOWN
SPRITEDOWN
LET IMAGE = 3
ANIMATE
ENDIF
ENDIF
IF DIRECTION = LEFT
IF X <= LEFTEDGE
LET X = RIGHTEDGE
EXIT
ELSE
IF CANGOLEFT
SPRITELEFT
LET IMAGE = 1
ANIMATE
ENDIF
ENDIF
ENDIF
IF DIRECTION = RIGHT
IF X >= RIGHTEDGE
LET X = LEFTEDGE
EXIT
ELSE
IF CANGORIGHT
SPRITERIGHT
LET IMAGE = 0
ANIMATE
ENDIF
ENDIF
ENDIF
; detectar
GETBLOCKS ; COME COCOS
DETECTOBJ ; Para las PILDORAS
IF OBJ < 4 ; es una PILDORA DE PODER
ADD 1 TO D ; cuenta PILDORAS PODER.
SCORE 50 ; suma 50 al marcador.
;BEEP 3 ; "gulp"
AT 22 2
SHOWSCORE ; actualizar marcador.
LET M = 200 ; activar modo Asustado, encender cronómetro.
GET OBJ ; COME
ENDIF
; comprobaciones
IF N > 193
LET N = 0
ENDGAME
ENDIF
LET V = X ; Revela tu POSICION X
LET W = Y ; Revela tu POSICION Y
LET I = DIRECTION ; Revela tu DIRECCION.
Guarda el script, cierra el editor de texto y guarda el proyecto.
EVENT GAMEINIT
Hemos introducido las variables globales M y D. Comentamos el significado de cada variable que incorporamos en el EVENT GAMEINIT, de esta manera tenemos un diccionario y una guía.
Selecciona la opción "Game initialisation" del menú "Events". Deberás editarlo para quedar así:
EVENT GAMEINIT
; VARIABLES GLOBALES
LET LIVES = 3
LET N = 0 ; contador PILDORAS
LET D = 0 ; contador PILDORAS DE PODER
LET M = 0 ; Modo/cronómetro. "DISPERSION o DESPLIEGUE", "PERSECUCION", "ASUSTADO".
LET Q = 0 ; TARJET X
LET R = 0 ; TARJET Y
LET T = 0 ; coordenada X de BLINKY
LET U = 0 ; coordenada Y de BLINKY
LET V = 0 ; coordenada X de PACMAN
LET W = 0 ; coordenada Y de PACMAN
LET I = 0 ; DIRECCION de PACMAN
; MARCADORES
AT 22 16
DISPLAY LIVES
AT 22 14
AT 22 2
SHOWSCORE
AT 22 24
SHOWHIGH
Guarda el script, cierra el editor de texto y guarda el proyecto.
"Estamos en el segundo acto, esto debe ser casi dos tercios de la representación. El tiempo juaga un papel importante en nuestra historia, la vida de los personajes depende en cierta medida de él".
Comentarios
Publicar un comentario