Premio

"La segunda forma de aumentar su puntaje en cada ronda es comiendo los símbolos de bonificación (comúnmente conocidos como frutas) que aparecen directamente debajo de la guarida fantasma dos veces en cada ronda para obtener puntos adicionales.
Cada fruta vale entre 100 y 5,000 puntos, dependiendo del nivel en que se encuentre el jugador actualmente. Cada vez que aparece una fruta, la cantidad de tiempo que permanece en la pantalla antes de desaparecer es siempre entre nueve y diez segundos".
Dosier fantasma.

BONUS SPRITES

Otra manera de proporcionar Bonus al juego es mediante Sprites. El Sprite nos deja intervenir en su script tipo una vez cada ciclo de juego. Vamos a aprovechar esta característica para las frutas. Otra ventaja de usar Sprites es que podríamos animarlos para hacer más atractivo el juego, en nuestro caso no es necesario.

Abre el editor MPAGD. Abre el proyecto Pacman. Selecciona la opción "Sprites" del menú "Editor" del MPAGD.
Es momento de dibujar. Para añadir los Sprites pulsa "x". A continuación se muestra la lista de Imágenes correspondientes. Dibújalas en el mismo orden.

Sprite 008 frame 000

Sprite 009 frame 000

Sprite 010 frame 000

Sprite 011 frame 000

Sprite 012 frame 000

Sprite 013 frame 000

Guarda tu trabajo.

EVENT MAINLOOP1

Selecciona la opción "Main loop 1" del menú "Events".

Modifica el código del cronómetro para que cuente ahora los segundos que permanecen las frutas en pantalla, debe quedar así:

; CRONOMETRO
LET A = CLOCK
SUBTRACT O FROM A
IF A >= 50
    ADD 50 TO O    ; variable O (letra o) es última lectura de CLOCK.
    ADD 1 TO M     ; cronómetro MODOS
    ADD 1 TO B     ; cronómetro marcador BONUS
    ADD 1 TO S     ; cronómetro FRUTAS
ENDIF

Inserta el código siguiente justo después de la sección de marcador de BONUS que está al inicio del script.

; frutas
IF S = 15            ; primera aparición de BONUS FRUTAS
    LET S = 0        ; restauramos cronómetro
    READ A ; lee FRUTA
    SPAWN 5 A       ; instancia una FRUTA
    SPAWNED
        LET X = 112
        LET Y = 96           ; posición GET READY
        SUBTRACT 7 TO A
MULTIPLY A BY 2
SUBTRACT 1 TO A      ; posición en la serie = (A-7)*2-1
LET SETTINGB = A     ; guardar índice en SETTINGB
READ SETTINGA  ; leer color y guardar en SETTINGA 
    ENDSPRITE
ENDIF

Añade los datos al final del script, los datos deben colocarse siempre allí. El código es el siguiente:

; datos: fruta, color
DATA 8 2 9 2 10 3 11 6 12 2 13 7

El programa se ejecuta cuando el cronómetro "S" llega a 15 segundos. Entonces lee un número de la serie DATA que corresponde a la imagen del Sprite BONUS que hay que instanciar y lo guarda en la variable "A". El comando "SPAWN 5 A" se encarga de la aparición en escena del Sprite tipo 5 (FRUTAS). El comando SPAWNED debe usarse a continuación si queremos acceder a las propiedades de las "frutas" que acabamos de instanciar. Definimos su POSITION "GET READY" en pantalla, guardamos en SETTINGB la posición que ocupa en la serie de datos (índice). Leemos de nuevo la serie con READ SETTINGA quedando guardado en SETTINGA el color obtenido de la lectura. Seguidamente usamos ENDSPRITE para finalizar ese acceso a las propiedades de las "frutas".

En palabras más sencillas. A los 15 segundos de haber desaparecido la última fruta, reaparece otra con un nuevo índice y color.

Enhorabuena! has logrado el 100% del código para este evento. Premio!

Guarda tu trabajo.

EVENT SPRITETYPE5

Aprovechamos el evento que nos proporciona el Sprite para hacer las siguientes tareas:
Ser invocado en la posición "GET READY", pintar la "fruta" del color SETTINGA, detectar si Pac-man colisiona ("Gulp"), borrarse a sí mismo (cosa que no puede hacerse de otro modo) cuando pasen 10 segundos desde su aparición o cuando sea tragado por Pac-man, calcular los puntos que suben al marcador y presentarlos en pantalla, sumar uno al contador de Frutas y actualizar SCORE en pantalla.
Usamos números pseudoaleatorios para restaurar el cronómetro "S".

EVENT SPRITETYPE5

; FRUTAS
; deben permanecer 10 segundos

SPRITEINK SETTINGA

IF S = 10        ; si agotamos 10 segundos en pantalla
    REMOVE             ; desaparece
    GETRANDOM 5
    LET S = RND        ; restaurar cronómetro FRUTAS
ENDIF

IF COLLISION PLAYER    ; somos capturados
    GETRANDOM 5
    LET S = RND        ; restaurar cronómetro FRUTAS
    REPEAT SETTINGB
READ A             ; lee multiplicador en posición SETTINGB de la serie
    ENDREPEAT
    REPEAT A
        SCORE 200    ; suma 200 puntos al SCORE
ADD 1 TO J         ; cuenta BONUS FRUTAS
    ENDREPEAT
    READ A            ; lee marcador BONUS
    LET B = 4 
    WHILE B < 8
        GET B             ; borra marcadores BONUS de fantasmas
ADD 1 TO B
    ENDWHILE
    PUT X Y A         ; pinta marcador en pantalla
    LET B = 1         ; inicia cronómetro marcador BONUS
    AT 22 2
    SHOWSCORE         ; actualiza marcador SCORE
    ; BEEP 3            ; sonido "Gulp"
    RESTORE           ; restaura serie DATA
    REMOVE            ; desaparece
    ADD 1 TO H        ; suma 1 al contador de FRUTAS
ENDIF

; diccionario: multiplicador, marcador Bonus
DATA 1 4 2 5 2 5 4 6 4 6 8 7

La variable "H" cuenta las frutas que comemos a lo largo del juego.
Nos vemos obligados a contar las frutas que comemos y las veces que sumamos 200 puntos para hacer el recuento final.

Selecciona la opción "Game initialisation" del menú "Events" añade estas variables:

LET H = 0        ; contador FRUTAS

Premio otra vez! El script está completo al 100%.

Guarda tu trabajo. Cada vez que quieras puedes probar tu juego. Hazlo cuando terminemos un bloque de programación. Ahora puede ser un buen momento, recuerda revisar la ventana de comandos para depurar errores.

"Los símbolos de bonificación se agregaron al juego en algún momento  y los fantasmas finalmente recibieron nombres: Akabei, Pinky, Aosuke y Guzuta. Los efectos de sonido y la música fueron algunos de los toques finales que se agregaron a medida que el desarrollo se acercaba al final junto con ajustes constantes del comportamiento de los fantasmas".

Japón 22 de mayo de 1980.

INSERT COIN






Comentarios

Entradas populares de este blog

El laberinto