La semilla fantasma

"El destino, la libertad de elegir por nosotros mismos, en el juego depende de una semilla fantasma. Un número, un instante en los circuitos de una máquina. Pac-man y sus perseguidores son conscientes de ello; pero ¿y tu?"

El dosier fantasma.

Existe un byte en la RAM, llamado "SEED", que contiene un número aleatorio. Este número es realmente el número de microsegundos que el usuario ha tardado en pulsar una tecla. Este número creará la ilusión de no poder librarnos de nuestros fantasmas.

GEGTRANDOM

Al contrario de las oleadas alienígenas con patrones rígidos, los fantasmas y Pac-man gozan de libertad de decisión, gracias a la ilusión de la inteligencia artificial.

El informe del equipo de desarrollo dice: -"Los fantasmas usan un generador de números pseudo-aleatorios para elegir una forma de girar en cada intersección cuando están ASUSTADOS".

Nuestro generador de números pseudo-aleatorios será GETRANDOM. La "semilla fantasma" se reserva en la variable RND.

Ghost

Abrimos el MPAGD. Abrimos nuestro proyecto Pacman. En el menú "Editor" seleccionamos "Sprites".

Pulsamos "x" con lo que vamos a crear un nuevo Sprite (Sprite 004).

Sprite 004 frame 000.

Dibuja pixel a pixel (toma referencias contando los pixeles para que te salga idéntico al de la figura). Ahora nuestro "Fantasma" puede tomar la apariencia de la imagen Sprite 004 frame 000.

Vamos a crear algunos frames (fotogramas) para animar. Pulsamos "i" (insertar nuevo frame) y dibujamos la siguiente:

Sprite 004 frame 001.

Otro más. Volvemos a pulsar "i" para insertar una imagen más:

Sprite 004 frame 002.

Último (Volvemos a pulsar "i" para insertar):

Sprite 004 frame 003.

Guarda el proyecto.

Repite el trabajo con este nuevo Sprite GHOST en modo ASUSTADO.
Pulsamos "x" con lo que vamos a crear un nuevo Sprite (Sprite 005).

Sprite 005 frame 000.

Pulsamos "i" (insertar nuevo frame) y dibujamos la siguiente:

Sprite 005 frame 001.

Guarda el proyecto.

Un último esfuerzo. Crea un Sprite más, el Sprite GHOST en modo "INCORPOREO" (ahora ya sabes cómo).

Sprite 006 frame 000.

Sprite 006 frame 001.

Sprite 006 frame 002.

Sprite 006 frame 003.

Guarda el proyecto.

EVENT SPRITETYPE3

Para demostrar el uso de "la semilla fantasma" vamos a resolver la especificación del expediente que dice:

"los fantasmas entran en modo asustado cuando Pac-Man come uno de los cuatro "energizadores" ubicados en los rincones más alejados del laberinto. Durante los primeros niveles, los fantasmas se volverán azul oscuro (lo que significa que serán vulnerables) y deambularán sin rumbo por el laberinto durante unos segundos".
EL dosier fantasma.

Selecciona "Sprite type 3" del menú "Events" del editor. Edita el script. Deberá quedar así:

EVENT SPRITETYPE3

; MODO MIEDO ASUSTADO

SPRITEINK 1    ; COLOREAMOS

GETRANDOM 4    ; GENERAR NUMERO PSEUDOALEATORIO 4=(0,1,2,3)(SEED)
LET A = RND    ; RESERVAR en A = DIRECCIONES (0,1,2,3)

IF DIRECTION = UP
    IF CANGOUP
        SPRITEUP
    ELSE                    ; CUANDO SE ENCUENTRA UN OBSTÁCULO
LET DIRECTION = A    ; DIRECTION = RND Y VAGAR
    ENDIF
ENDIF

IF DIRECTION = DOWN
    IF CANGODOWN
        SPRITEDOWN
    ELSE
LET DIRECTION = A    ; VAGAR
    ENDIF
ENDIF

IF DIRECTION = LEFT
    IF X <= LEFTEDGE
        LET X = RIGHTEDGE    ; TUNEL
EXIT
    ELSE
    IF CANGOLEFT
            SPRITELEFT
ELSE
    LET DIRECTION = A ; VAGAR
ENDIF
    ENDIF
ENDIF

IF DIRECTION = RIGHT
    IF X >= RIGHTEDGE
LET X = LEFTEDGE        ; TUNEL
EXIT
    ELSE
IF CANGORIGHT
    SPRITERIGHT
ELSE
    LET DIRECTION = A ; VAGAR
ENDIF
    ENDIF
ENDIF

Hemos usado la variable A como "reserva", es una variable global pero no le damos más significado fuera de el ámbito de este Script, de esta manera la usaremos en otros scripts.

Guarda el script, Guarda el proyecto.

SPRITE POSITIONS

Ahora selecciona la opción "screens" del menú "Editor". Aparece el laberinto (si hubiera más pantallas escogeríamos el laberinto usando las teclas "1" y "2").
Ahora seleccionamos la opción "Sprite positions".

Para AÑADIR un fantasma al "Laberinto" seleccionamos el icono correspondiente al Sprite 5 (Con cada "clic" estarás añadiendo un fantasma, ten cuidado).

Segundo clic: EL botón derecho muestra el Sprite seleccionado y su tipo. Debes dejar seleccionado el tipo "Sprite type 3".

Tercer clic: En el Laberinto, en la posición que quieras, ahí aparecerá cada vez que "entres a jugar al laberinto". Coloca cuatro fantasmas en total.

Guarda el proyecto.
Pulsa "F5".



Esto pinta bien, nuestros fantasmas tienen movimiento errático cumpliendo la especificación "deambularán sin rumbo por el laberinto durante unos segundos".

"Ahora no manejo mi destino. En el laberinto nadie es dueño de su destino, Pac-man tampoco, pronto lo descubrirás".


Comentarios

Entradas populares de este blog

El laberinto