Bueno, paso los tutos a este tema, ire actualizando este post mediante tenga mas tutos.
Tutorial Arkanoid
Tutorial Pac-Man
Tutorial Arkanoid
Paso 1: Sprites
Paso 2: Sonido
Paso 3: Objetos
Paso 4: Rooms
Errores
Lo primero que deberian hacer para que no se mezcle o desorganize el juego, es crear las carpetas. Bien se pueden crear carpetas para todo pero ahora las pondremos para la categoria de Sprites. Solo hay que hacer clic derecho sobre la carpeta sprites y darle a "Create Group" como indica la imagen.
Le pondremos el nombre que queramos, en este caso yo creare tres, una para los bloque, una para las barras y una para los items del nivel, Ahora cargaremos los sprites, para esto hay que hacer clic en la carita del pacman rojo, le pondremos el nombre del archivo. NOTA: si no contais con los sprites de arkanoid(Bouncing balls,Icons) los podeis descargar desde aqui:http://www.mediafire.com/?k5suwruhvvtqqrr
Le daremos clic a "Load Sprite" y seleccionaremos el sprite que queramos.
cuando tengamos cargados todos los sprites tendremos que organizarlos, los moveremos todos y cada uno a las carpetas creadas(no es obligatorio).
Cuando tengamos listos todos los sprites cargados seguiremos con el resto de pasos. NOTA: no se debe tocar nada más que la funcion Load Sprite, a menos que sepas para que sirve cada funcion, pues puede que no ande como se debe.
Le pondremos el nombre que queramos, en este caso yo creare tres, una para los bloque, una para las barras y una para los items del nivel, Ahora cargaremos los sprites, para esto hay que hacer clic en la carita del pacman rojo, le pondremos el nombre del archivo. NOTA: si no contais con los sprites de arkanoid(Bouncing balls,Icons) los podeis descargar desde aqui:http://www.mediafire.com/?k5suwruhvvtqqrr
Le daremos clic a "Load Sprite" y seleccionaremos el sprite que queramos.
cuando tengamos cargados todos los sprites tendremos que organizarlos, los moveremos todos y cada uno a las carpetas creadas(no es obligatorio).
Cuando tengamos listos todos los sprites cargados seguiremos con el resto de pasos. NOTA: no se debe tocar nada más que la funcion Load Sprite, a menos que sepas para que sirve cada funcion, pues puede que no ande como se debe.
Paso 2: Sonido
Ahora cargaremos los sonidos, este paso no es muy necesario, por lo que lo podreis saltar. NOTA: si saltais este paso, ignoren en la creación todos los implementos de sonido.
Primero le daremos clic al icono de megafono, se les abrira la ventana para programar el sonido.
Le daremos clic a "Load Sound" y seleccionaremos el sonido que queramos
Yo utilizare estos:
Cuando tengas cargados todos los sonidos podeis seguir con el otro paso.
Primero le daremos clic al icono de megafono, se les abrira la ventana para programar el sonido.
Le daremos clic a "Load Sound" y seleccionaremos el sonido que queramos
Yo utilizare estos:
Cuando tengas cargados todos los sonidos podeis seguir con el otro paso.
Paso 3: Objetos
Ahora trabajaremos en los objetos, este paso es el mas largo y es de suma importancia. Lo primero que haremos es agregar los objetos, le haremo clic a la bolita azul y se abrira la ventana de objetos. Lo nombraremos y luego le agregaremos el sprite, haciendole clic al menu sprite justo debajo del nombre.
Bueno ahora deberemos crear todos los objetos que se muestran en la imagen, mas uno de la bola que no pude colocar en la imagen. NOTA: Por mas que luego programaremos los demas objetos, deben ser creados todos de una vez, ya que se utilizaran para preprogramar cierta funciones.
Bien, una ves los tengamos todos, procederemos a programar el objeto de la barra. Lo primero sera marcar la casilla "Solid" luego programar la dirección, le daremos clic a "Add Event", luego "Keyboard" y "Left"(o el boton con el que quieras que se mueva a la izquierda). NOTA: Todos los objetos donde la bola rebote deberan tener marcada la casilla "Solid"
Ya creado el evento pondremos las acciones. Que solo es una para este evento, añadiremos la accion "Jump to Position" el valor X le pondremos -4 y el valor Y lo dejamos en 0, marcaremos la opcion relative. NOTA: es muy importante la casilla relativa
Ahora haremos lo mismo pero en la otra direccion, derecha, para esto, le damos clic a "Add Event", "Keyboard", "Right"(o el boton con el que quieras que se mueva a la derecha).
Ya tenemos el evento, ahora pondremos la accion, "Jump to Position" pero ahora el valor X sera 4 y el Y no cambia, seguira en 0, marcamos "Relative"
Perfecto, ahora pondremos la colision(lo que sucede al contacto con X objeto), haremos clic en "Add Event", "Collision", "Muro"
Como accion pondremos "Move Fixed"(la primera accion de la pestaña move), marcamos la casilla del medio(la que tiene forma cuadrada), y damos clic a aceptar, sin tocar otra opcion.
Seguimos con un evento de colision, clic a "Add Event", "Collision", "Power up", ahora le damos clic a la casilla "Change Sprite"(en la pestaña "Main1", "sprite") donde dice sprite, seleccionaremos el sprite de la barra larga, "subimage" y "speed" tendran valor de 0.
Ahora pondremos una alarma, esto hara que al pasar cierto tiempo se active una alarma que programaremos luego. La accion esta en la pestaña "main2" la primera accion. En "Number of Steps" pondremos 600(equivalente a 20 segundos)
y la alarma es la 0. NOTA: La accion "Play sound Bonus" es la que pondra el sonido, esta no necesita explicacion, solo arrastrar la accion y poner el sonido que quiera.
Ahora crearemos la funcion de la alarma, para eso damos clic en "Add Event", "Alarm", "Alarm 0".
Ahora pondremos la funcion de la alarma, ponemos "Change Sprite", donde "sprite" seleccionamos la barra normal, "subimage" y "speed" lo dejamos en 0.
Ahora crearemos un evento de colision con el efecto negativo(que es la inversa del power up), vamos a "Add Event", "Collision", "Efecto negativo". Luego pondremos la funcion "Change Sprite", donde dice "sprite", pondremos el de la barra pequeña, "subimage" y "speed" quedan en 0.
Deberia quedarles así:
Ahora creamos el objeto de la bola, le damos "Add Event", "Create". Seleccionamos "Move Fixed" y marcamos las cuatro direcciones diagonales, en "speed" ponemos 5.
Ahora crearemos una colision, vamos a "Add Event", "Collision", "Barra". Colocamos la accion "Bounce". Donde dice "precise" lo ponen como mas les guste, "precisely" o "not precisely". Si pones not precisely la bola rebotara en las cuatro direcciones diagonales, si pones precisely la bola rebotara en todas las direcciones posibles. Recomiendo not precisely. En "against" ponen "solid object"
Ahora duplicaremos este evento para acelerar el proceso. Damos clic derecho al evento de colision con la barra, seleccionamos "Dublicate Event", lo haremos con todos los objetos con los que se rebote.
A continuacion creamos el evento para que se pueda perder en el juego. Ponemos "Add Event", "Other", "Outside room"
Ahora pondremos la accion "Jump to Start" y le damos OK. Seleccionamos otra vez la opcion pero ahora, donde dice "Applies to", "object", "barra".
Luego pondremos la accion, "Set Lives" donde dice "new lives" ponemos -1 y marcamos relative.
Ahora pondremos la accion "Sleep"(en main2) en "milliseconds" ponemos 2000 y en "redraw", ponemos "true"
Bien, seguiremos con las acciones que se haran al iniciar el juego, como agregar las vidas, etc. Ponemos "Add Event", "Other","Game start"
Ahora ponemos "Set Lives" en "new lives" ponemos las vidas que quieran que el jugador tenga, no marquen relative. Luego agregamos "Score Caption" donde dice "show score" y "show lives" ponen "show" pero en "show health" ponen "don´t show" en "score caption" ponen "pts"(o como se llamara el puntaje) y en "lives caption" ponen "Vidas"(o como llamaran a las vidas).
Ahora creamos otro evento, vamos a "Add Event", "Other", "No more lives".
Crearemos una accion para que muestre una tabla de puntuaciones al perder el juego. Vamos a la pestaña "score"
y ponemos "Show Highscore".
Luego pondremos la accion "Restart the game", se encuentra en la pestaña "main2", "Game".
Ahora crearemos un evento que hara que al no haber bloques se pasara al siguiente nivel, y en caso de no haber otro nivel, terminara el juego.
Lo primero sera ir a "Add Event", "Step", "Step".
Pondremos una accion que verificara que no haya bloques azules(o el bloque que pongan), vamos a la pestaña "control", "Questions", "Test Instance Count". Donde dice "object" elegimos el bloque. en "number" lo dejamos en 0 y en "operation" ponemos "Equal to".
Ahora repetiremos la operacion hasta hacerla con todos los bloques del juego(azul, verde, naranja, rosa, purpura, rojo y amarillo, en total 7), pero ahora las encerraremos en "blocks", los "blocks" estan en la pestaña "control", es muy importante que encierres estas acciones en "blocks", porque podrias tener errores luego.
Al final pondremos unos "blocks" que encerraran las acciones al pasar de nivel. Lo primero sera poner la accion "sleep", en la pestaña "main2", en "milliseconds" ponemos 3000 y en "redraw" ponemos "true". Luego vamos a la pestaña "main1", "Rooms", ponemos la opcion "If next room exists", luego en la misma pestaña, ponemos "Go to next room", donde dice "transition" elegiremos la transición con la cual se pasara al siguiente nivel. Ahora vamos a la pestaña "control", "Other" y ponemos la accion, "Else" y ponemos otro "block", dentro del "block" pondremos la accion "Show Highscore"(en la pestaña "score", "Score"). A continuacion, vamos a la pestaña "main2", "Game", "Restart the game"
Ahora programaremos el objeto de los bloques, vamos al objeto "bloque azul", marcamos la casilla "solid", continuamos creando un evento de colision con la bola, vamos a "Add Event", "Collision", "Bola". En las acciones vamos a la pestaña, "main1", "Objects", "Change instance",donde dice "change into" elegimos el objeto del bloque rompiendose, "perform events" lo dejamos como esta.
Seguiremos con una accion que hara que el jugador gane puntos por romper el bloque, vamos a la pestaña "score", "Score", y seleccionamos "Set score", donde dice "new score" ponemos el puntaje que queramos que el jugador gane al romper un bloque y marcamos "relative", haremos. NOTA: Se recomienda volver a poner la accion "bounce" ya que es posible que la bola atraviese los bloques.
Ahora pondremos en un bloque que se deje un "power up", vamos al bloque rosa, colision con bola, y antes de la accion "Change instance" ponemos "Create instance"(la primera accion de la pestaña "main1") en "object" elegimos el power up, el valor "x" e "y" le pondremos la mitad del tamaño del sprite, osea en X: 32 y en Y: 16 y marcamos relative. NOTA: para que dejen el efecto negativo, que es lo que achica la barra, en "object" de la accion "Create instance" cambiamos el "power up" por "efecto negativo".
Ahora progamaremos el power up, abrimo el objeto y ponemos el evento create("Add Event", "Create"), en la pestaña "move" ponemos "Move Fixed", marcamos la direccion de abajo y en "speed" ponemos 5.
Ahora pondremos que al colisionar con la barra se elimine este objeto, creamos el vento de colision("Add Event", "Collision","Barra"), y en las acciones vamos a la pestaña "main1", "Objects" y elegimos "Destroy Instance" y damos a OK.
Ahora programaremos que los bloques se destruyan, vamos al objeto de los bloques rompiendose(la animacion de los bloques destruyendose), y en "Add event" ponemos "Other" y luego "Animation end".
Y en la accion ponemos "Destroy instance" y lo dejamos así
Cuando hayas programado todos los objetos procederemos a crear los "rooms"
Bueno ahora deberemos crear todos los objetos que se muestran en la imagen, mas uno de la bola que no pude colocar en la imagen. NOTA: Por mas que luego programaremos los demas objetos, deben ser creados todos de una vez, ya que se utilizaran para preprogramar cierta funciones.
Bien, una ves los tengamos todos, procederemos a programar el objeto de la barra. Lo primero sera marcar la casilla "Solid" luego programar la dirección, le daremos clic a "Add Event", luego "Keyboard" y "Left"(o el boton con el que quieras que se mueva a la izquierda). NOTA: Todos los objetos donde la bola rebote deberan tener marcada la casilla "Solid"
Ya creado el evento pondremos las acciones. Que solo es una para este evento, añadiremos la accion "Jump to Position" el valor X le pondremos -4 y el valor Y lo dejamos en 0, marcaremos la opcion relative. NOTA: es muy importante la casilla relativa
Ahora haremos lo mismo pero en la otra direccion, derecha, para esto, le damos clic a "Add Event", "Keyboard", "Right"(o el boton con el que quieras que se mueva a la derecha).
Ya tenemos el evento, ahora pondremos la accion, "Jump to Position" pero ahora el valor X sera 4 y el Y no cambia, seguira en 0, marcamos "Relative"
Perfecto, ahora pondremos la colision(lo que sucede al contacto con X objeto), haremos clic en "Add Event", "Collision", "Muro"
Como accion pondremos "Move Fixed"(la primera accion de la pestaña move), marcamos la casilla del medio(la que tiene forma cuadrada), y damos clic a aceptar, sin tocar otra opcion.
Seguimos con un evento de colision, clic a "Add Event", "Collision", "Power up", ahora le damos clic a la casilla "Change Sprite"(en la pestaña "Main1", "sprite") donde dice sprite, seleccionaremos el sprite de la barra larga, "subimage" y "speed" tendran valor de 0.
Ahora pondremos una alarma, esto hara que al pasar cierto tiempo se active una alarma que programaremos luego. La accion esta en la pestaña "main2" la primera accion. En "Number of Steps" pondremos 600(equivalente a 20 segundos)
y la alarma es la 0. NOTA: La accion "Play sound Bonus" es la que pondra el sonido, esta no necesita explicacion, solo arrastrar la accion y poner el sonido que quiera.
Ahora crearemos la funcion de la alarma, para eso damos clic en "Add Event", "Alarm", "Alarm 0".
Ahora pondremos la funcion de la alarma, ponemos "Change Sprite", donde "sprite" seleccionamos la barra normal, "subimage" y "speed" lo dejamos en 0.
Ahora crearemos un evento de colision con el efecto negativo(que es la inversa del power up), vamos a "Add Event", "Collision", "Efecto negativo". Luego pondremos la funcion "Change Sprite", donde dice "sprite", pondremos el de la barra pequeña, "subimage" y "speed" quedan en 0.
Deberia quedarles así:
Ahora creamos el objeto de la bola, le damos "Add Event", "Create". Seleccionamos "Move Fixed" y marcamos las cuatro direcciones diagonales, en "speed" ponemos 5.
Ahora crearemos una colision, vamos a "Add Event", "Collision", "Barra". Colocamos la accion "Bounce". Donde dice "precise" lo ponen como mas les guste, "precisely" o "not precisely". Si pones not precisely la bola rebotara en las cuatro direcciones diagonales, si pones precisely la bola rebotara en todas las direcciones posibles. Recomiendo not precisely. En "against" ponen "solid object"
Ahora duplicaremos este evento para acelerar el proceso. Damos clic derecho al evento de colision con la barra, seleccionamos "Dublicate Event", lo haremos con todos los objetos con los que se rebote.
A continuacion creamos el evento para que se pueda perder en el juego. Ponemos "Add Event", "Other", "Outside room"
Ahora pondremos la accion "Jump to Start" y le damos OK. Seleccionamos otra vez la opcion pero ahora, donde dice "Applies to", "object", "barra".
Luego pondremos la accion, "Set Lives" donde dice "new lives" ponemos -1 y marcamos relative.
Ahora pondremos la accion "Sleep"(en main2) en "milliseconds" ponemos 2000 y en "redraw", ponemos "true"
Bien, seguiremos con las acciones que se haran al iniciar el juego, como agregar las vidas, etc. Ponemos "Add Event", "Other","Game start"
Ahora ponemos "Set Lives" en "new lives" ponemos las vidas que quieran que el jugador tenga, no marquen relative. Luego agregamos "Score Caption" donde dice "show score" y "show lives" ponen "show" pero en "show health" ponen "don´t show" en "score caption" ponen "pts"(o como se llamara el puntaje) y en "lives caption" ponen "Vidas"(o como llamaran a las vidas).
Ahora creamos otro evento, vamos a "Add Event", "Other", "No more lives".
Crearemos una accion para que muestre una tabla de puntuaciones al perder el juego. Vamos a la pestaña "score"
y ponemos "Show Highscore".
Luego pondremos la accion "Restart the game", se encuentra en la pestaña "main2", "Game".
Ahora crearemos un evento que hara que al no haber bloques se pasara al siguiente nivel, y en caso de no haber otro nivel, terminara el juego.
Lo primero sera ir a "Add Event", "Step", "Step".
Pondremos una accion que verificara que no haya bloques azules(o el bloque que pongan), vamos a la pestaña "control", "Questions", "Test Instance Count". Donde dice "object" elegimos el bloque. en "number" lo dejamos en 0 y en "operation" ponemos "Equal to".
Ahora repetiremos la operacion hasta hacerla con todos los bloques del juego(azul, verde, naranja, rosa, purpura, rojo y amarillo, en total 7), pero ahora las encerraremos en "blocks", los "blocks" estan en la pestaña "control", es muy importante que encierres estas acciones en "blocks", porque podrias tener errores luego.
Al final pondremos unos "blocks" que encerraran las acciones al pasar de nivel. Lo primero sera poner la accion "sleep", en la pestaña "main2", en "milliseconds" ponemos 3000 y en "redraw" ponemos "true". Luego vamos a la pestaña "main1", "Rooms", ponemos la opcion "If next room exists", luego en la misma pestaña, ponemos "Go to next room", donde dice "transition" elegiremos la transición con la cual se pasara al siguiente nivel. Ahora vamos a la pestaña "control", "Other" y ponemos la accion, "Else" y ponemos otro "block", dentro del "block" pondremos la accion "Show Highscore"(en la pestaña "score", "Score"). A continuacion, vamos a la pestaña "main2", "Game", "Restart the game"
Ahora programaremos el objeto de los bloques, vamos al objeto "bloque azul", marcamos la casilla "solid", continuamos creando un evento de colision con la bola, vamos a "Add Event", "Collision", "Bola". En las acciones vamos a la pestaña, "main1", "Objects", "Change instance",donde dice "change into" elegimos el objeto del bloque rompiendose, "perform events" lo dejamos como esta.
Seguiremos con una accion que hara que el jugador gane puntos por romper el bloque, vamos a la pestaña "score", "Score", y seleccionamos "Set score", donde dice "new score" ponemos el puntaje que queramos que el jugador gane al romper un bloque y marcamos "relative", haremos. NOTA: Se recomienda volver a poner la accion "bounce" ya que es posible que la bola atraviese los bloques.
Ahora pondremos en un bloque que se deje un "power up", vamos al bloque rosa, colision con bola, y antes de la accion "Change instance" ponemos "Create instance"(la primera accion de la pestaña "main1") en "object" elegimos el power up, el valor "x" e "y" le pondremos la mitad del tamaño del sprite, osea en X: 32 y en Y: 16 y marcamos relative. NOTA: para que dejen el efecto negativo, que es lo que achica la barra, en "object" de la accion "Create instance" cambiamos el "power up" por "efecto negativo".
Ahora progamaremos el power up, abrimo el objeto y ponemos el evento create("Add Event", "Create"), en la pestaña "move" ponemos "Move Fixed", marcamos la direccion de abajo y en "speed" ponemos 5.
Ahora pondremos que al colisionar con la barra se elimine este objeto, creamos el vento de colision("Add Event", "Collision","Barra"), y en las acciones vamos a la pestaña "main1", "Objects" y elegimos "Destroy Instance" y damos a OK.
Ahora programaremos que los bloques se destruyan, vamos al objeto de los bloques rompiendose(la animacion de los bloques destruyendose), y en "Add event" ponemos "Other" y luego "Animation end".
Y en la accion ponemos "Destroy instance" y lo dejamos así
Cuando hayas programado todos los objetos procederemos a crear los "rooms"
Paso 4: Rooms
En este paso, explicare las funciones que ayudaran a la creacion de ESTE juego.
Primero en la pestaña Objects, podremos agregar todos los objetos utiles, deberas rodear el room con el objeto "muro" y poner almenos unos cuantos bloques, y obligatoriamente la barra y la bola. Arriba hay una opcion llamada Snap, recomiendo poner en SNAP X: 32 y en SNAP Y: 16 para que te sea mas facil ubicar los bloques.
Ahora en la pestaña "settings" pueden elegir el nombre del nivel en "Name", en "Widht" y "Height" elegimos el ancho y alto del room y en "Speed" la velocidad del nivel.NOTA: Puedes ir subiendo el "Speed" cada nivel, asi haras que la dificultad aumente.
Ahora en la pestaña "backgrounds" podremos elegir el color de fondo, o un fondo si tienen uno, vamos a "Color" y elegiremos el que mas nos guste.
Y aqui termina la creacion del juego, si todo te ha salido bien, tienes madera de para el Game maker.
Primero en la pestaña Objects, podremos agregar todos los objetos utiles, deberas rodear el room con el objeto "muro" y poner almenos unos cuantos bloques, y obligatoriamente la barra y la bola. Arriba hay una opcion llamada Snap, recomiendo poner en SNAP X: 32 y en SNAP Y: 16 para que te sea mas facil ubicar los bloques.
Ahora en la pestaña "settings" pueden elegir el nombre del nivel en "Name", en "Widht" y "Height" elegimos el ancho y alto del room y en "Speed" la velocidad del nivel.NOTA: Puedes ir subiendo el "Speed" cada nivel, asi haras que la dificultad aumente.
Ahora en la pestaña "backgrounds" podremos elegir el color de fondo, o un fondo si tienen uno, vamos a "Color" y elegiremos el que mas nos guste.
Y aqui termina la creacion del juego, si todo te ha salido bien, tienes madera de para el Game maker.
Errores
1: Si la bola no rebota y atraviesa los bloques, en el objeto de los bloques vayan al evento de collision con la bola, y como primera accion pongan "bounce", y en "Applies to" pongan Other.
2: Si al cambiar el tamaño de la barra se atora a los muros, borra los objetos y acciones que involucren los power ups, ya que estan en "fase de prueba"
2: Si al cambiar el tamaño de la barra se atora a los muros, borra los objetos y acciones que involucren los power ups, ya que estan en "fase de prueba"
Primero, si no contais con los recursos(sprites, background,etc) del juego "treasure", juego que viene por defecto en game maker 8, los podeis descargar desde aqui. NOTA: Este tutorial explica los eventos, acciones y programacion del juego "treasure"
Paso 1: Sprites
Paso 2: Sonidos
Paso 3: Backgrounds
Paso 4: Scripts
Paso 5: Objetos
Errores
Paso 1: Sprites
Primero crearemos el sprite del jugador, vamos a "create sprite" y cargamos el sprite del jugador, luego en la parte que dice "Collision Cheking", desmarquen la que dice "Precise collision checking", luego marquen la de "Separate collision mask".
Les marcaremos y desmarcaremos las mismas casillas a todos los sprites del jugador y al del muro. A continuacion, en el sprite del enemigo(monster) marcaremos ambas casillas.
Al igual que al enemigo les marcaremos las dos casillas a los sprites: afraid, special_sprite, treasure_sprite y bonus_sprite. Deberiamos tener todos los sprites mostrados en la imagen.
Ahora procederemos con el siguiente paso.
Les marcaremos y desmarcaremos las mismas casillas a todos los sprites del jugador y al del muro. A continuacion, en el sprite del enemigo(monster) marcaremos ambas casillas.
Al igual que al enemigo les marcaremos las dos casillas a los sprites: afraid, special_sprite, treasure_sprite y bonus_sprite. Deberiamos tener todos los sprites mostrados en la imagen.
Ahora procederemos con el siguiente paso.
Paso 2: Sonidos
NOTA: Si no quieres poner sonidos al juego, saltate este paso e ignora todas las acciones que involucren sonido.
Ahora cargaremos los sonidos y los dejaremos tal y como estan:
Tendremos que cargar todos los sonidos que se ven en la siguiente imagen, el ultimo archivo llamado music, es la musica de fondo, y en lugar de tener marcada la casilla "Normal sound", tendra la de "Background music".
Cuando tengas todos los sonidos procederemos al siguiente paso.
Ahora cargaremos los sonidos y los dejaremos tal y como estan:
Tendremos que cargar todos los sonidos que se ven en la siguiente imagen, el ultimo archivo llamado music, es la musica de fondo, y en lugar de tener marcada la casilla "Normal sound", tendra la de "Background music".
Cuando tengas todos los sonidos procederemos al siguiente paso.
Paso 3: Backgrounds
Vamos a "Create background" y cargamos el fondo del juego, dejaremos las demas opciones como estan.
Aqui solo cargaremos un background.
Aqui solo cargaremos un background.
Paso 4: Scripts
Añadiremos un codigo que ayudara a adaptar la direccion de los enemigos, así tendran una mejor IA. Utilizaremos el siguiente codigo:
Al igual que el paso anterior, aqui solo habra un archivo.
// This script adapts the direction of the monster
// when it comes at a possible crossing
{
if (hspeed == 0)
{
if (random(3)<1 && place_free(x-4,y))
{ hspeed = -4; vspeed = 0;}
if (random(3)<1 && place_free(x+4,y))
{ hspeed = 4; vspeed = 0;}
}
else
{
if (random(3)<1 && place_free(x,y-4))
{ hspeed = 0; vspeed = -4;}
if (random(3)<1 && place_free(x,y+4))
{ hspeed = 0; vspeed = 4;}
}
}
// when it comes at a possible crossing
{
if (hspeed == 0)
{
if (random(3)<1 && place_free(x-4,y))
{ hspeed = -4; vspeed = 0;}
if (random(3)<1 && place_free(x+4,y))
{ hspeed = 4; vspeed = 0;}
}
else
{
if (random(3)<1 && place_free(x,y-4))
{ hspeed = 0; vspeed = -4;}
if (random(3)<1 && place_free(x,y+4))
{ hspeed = 0; vspeed = 4;}
}
}
Al igual que el paso anterior, aqui solo habra un archivo.
Paso 5: Objetos
Crearemos el objeto del jugador y en la casilla "Depth" ponemos: -1 [Esto hace que el objeto aparesca en una "capa" superior a los demas objetos, si es positivo ira a una capa inferior y si es negativo a una superior]
Ahora crearemos los demas objetos, los cuales no programaremos ahora. Deberemos crear en total todos estos:
Volvemos al objeto del jugador y añadimos el evento "Create" [Esto evento hace que se ejecuten las acciones justo cuando el objeto sea creado]. Luego en las acciones vamos a la pestaña "main1", "Sprite" y elegimos "Change sprite" en "Applies to" lo dejamos en "Self", en "sprite" elegimos el del jugador hacia arriba, los demas valores los dejamos en 0 [Esta accion hara que el jugador se quede quieto hasta que se le ordene moverse].
Ahora crearemos otro evento, este sera "Step" [Este evento hara que las acciones se repitan constantemente]. A continuacion en las acciones pondremos "Test Instance Count"(en la pestaña "control", "Questions"). Donde pone "object" elegimos el de las bolitas(las que pac-man se come, en este caso sera el objeto "point"), en "number" lo dejamos en 0 y en "operation" pondremos "Equal to" [Esta accion verificara que no haya ningun "point," si se cumple lo programado se continuara con el resto de acciones]
Lo siguiente sera poner un "block"(en la pestaña "control", "Other") [Esto hace que si no se cumple una "question" antes programada se saltee hasta el final del block, en caso de que si se cumpla, se haran las acciones dentro del "block"], dentro del "block" pondremos la accion "sleep" y en "milliseconds" pondremos 2000 [Esto hace que se pause el juego durante 2000 milisegundos]. Ahora vamos a la pestaña "main1", "Rooms", y pondremos la accion "Check next" luego "next room", luego vamos a la pestaña "control", "Other" y seleccionamos la accion "Else", ahora crearemos otro "block" [Esto hace que se verifique si existe un siguiente room(nivel), si hay alguno se pasara al siguiente nivel, en caso de no haber se procedera a las acciones del block.] Dentro del "block" ponemos "Show Highscore", en la pestaña "score", "Score", a continuacion vamos a la pestaña "main2" y colocamos la accion "Restart game". [Esto hara que si no existe otra room, se mostrara la tabla de puntaciones y reiniciara el juego]
Ahora crearemos un evento de colision con el enemigo(monster) [Esto hara que las acciones solo se inicien al colisionar con un objeto, en este caso el enemigo], vamos a la pestaña "main2", "Timing" y elegimos "Sleep" y en "milliseconds" ponemos 1500. Luego vamos a la pestaña "move", "Jump" y seleccionamos "Jump to Start", en "Applies to" elegimos "Object" y pondremos "monster".
Nuevamente y en el mismo evento pondremos "Jump to Start" pero ahora en "Applies to" eligiremos el objeto del enemigo asustado(scared).
Seguiremos con la accion "Move Fixed", la direccion sera la del centro(quieto) dejaremos los demas valores asi como estan:
Ahora vamos a la pestaña "control", "Variables" y añadiremos la accion "Set variable" en "variable" pondremos: "image_speed" sin comillas, en "value" lo dejaremos en 0 [El variable "image_speed" se refiere a la velocidad de la animacion del sprite del jugador, si esta en 0 se quedara quieto hasta que se ejecute otro evento que aumente su valor]
Otra vez pondremos "Jump to Start", pero en "Applies to" dejamos "self" y listo:
A continuacion vamos a la pestaña "score", "Lives" y ponemos "Set lives", en "new lives" ponemos -1 y marcamos relative. [Este comando sustituira el numero de vidas a -1, en caso de que "relative" este marcado solo le restara -1 sin remplazar el anterior valor][En total, este evento hara que se espere un tiempo(como para que se reproduzca el sonido de game over) luego mandara a los enemigos a su posicion inicial(suele ser la casita en el centro del nivel del pacman), y despues transportara al jugador a su posicion inicial, lo mantendra quieto, detendra su sprite y restara una vida]
Procederemos a crear otro evento de colision, pero este sera contra el enemigo asustado(scared), la primera accion sera "Jump to Start" y en "applies to" pondremos "Other" [Esto hace que al tocar al enemigo asustado(scared) transportara a la posicion inicial, en este caso al marcar "Other", al otro objeto involucrado, osea "scared"]
Ahora vamos a la pestaña "main1", "Objects" y elegimos, "Change Instance". En "Applies to" pondremos "Other", en "Change into" pondremos al enemigo(monster) y en "perform events" pondremos "not" [Esta accion cambiara al enemigo asustado por el enemigo normal]
Vamos a la pestaña "score", "Score" y pondremos "Set Score" y en "new score" pondremos 100(o el valor que quieran) y marcamos "relative" [Esta accion otorga los puntos asignados en "new score", si esta marcado "relative" sumara el valor con el valor actual y no esta marcado reemplazara el antiguo valor con el nuevo]
Creamos otro evento de colision, pero este ira contra el muro(wall), la primera accion sera "Move fixed"(en la pestaña "move") la direccion sera quito(el centro) y lo demas lo dejaremos. [Esto hara que cuando el jugador choque contra el muro se quede quieto]
Ahora vamos a la pestaña "control", "Variables" y ponemos "Set Variahttp://www.emudesc.net/foros/clear.gifble", en "variable" pondremos: "image_speed" sin comillas, en "value" dejaremos 0. [Esto hace que el sprite de animacion del jugador se detenga al chocar contra un muro.]
A continuacion añadiremos otro evento de colision, este sera contra el objeto "point", y la primera accion sera "Destroy Instance"(en la pestaña "main1", "Objects"), en "Applies to" elegimos "Other". [Esto hace que cuando el jugador toque uno de estos objetos, este se elimine]
Vamos a la pestaña "score", "Score" y ponemos "Set Score", en "new score" ponemos 10(o lo que quieran teniendo en cuenta que se otorgara esa cantidad por cada vez que recoga un "point") y marcamos "relative". [Esta accion otorgara puntos al jugador, 10 por cada "point"(galletas en pacman) que consiga]
Bien, seguiremos añadiendo otro evento de colision, este sera contra el objeto "pil"(las bolas que asustaban a los fantasmas), la primera accion sera "Destroy Instance" y en "Applies to" ponemos "Other". [Esto hace que al conseguir un "pil" este se destruya][/COLOR
Ahora ponemos la accion "Change Instance"(en la pestaña "main1", "Objects"), en "Applies to" pondremos "Object", "scared". Continuamos en "change into", ponemos "monster" y en "perform events" pondremos "not". [Esta accion cambiara el objeto de los "scared"(monstruos asustados) por los "monster"]
Añadiremos nuevamente "Change instance", pero invertiremos los papeles, en "Applies to" ponemos "Object", "monster" y en "change into" pondremos "scared". [Igual que el anterior, pero aqui cambiara el objeto "monster" por "scared"]
Continuaremos poniendo la accion "Set Alarm"(en "main2", "Timing"), en "Applies to" pondremos "object", "scared", en "number of steps" pondremos 160 y en "in alarm no" dejamos "alarm 0", no marcaremos "relative". [Esta accion mandara una alarma a todos los objetos "scared", dicha alarma la programaremos despues]
Ahora pondremos otro evento, este sera "Keyboard left"("Add Event", "Keyboard", "Left"), lo seguido sera añadir la accion "Check Empty", el valor X le pondremos -4 y marcamos "relative". [Esta accion verifica que no haya nada a una distancia de 4 pixeles]
Seguiremos añadiendo dentro de un "block" la accion "Move Fixed", la direccion sera a la izquierda y en "speed" va 4. [Esta accion, al estar dentro de un "block", tendra que primero esperar la señal de verificacion, si se cumple lo requerido, el jugador se movera a la izquierda]
Lo siguiente sera poner la accion "Change Sprite"(en "main1", "Sprite") y en "sprite" pondremos el del jugador caminando hacia la izquierda("player_left"), donde dice "subimage" le pondremos -1 y en "speed" ponemos 0.5. [Esta accion cambiara el sprite del jugador por uno del mismo pero caminando hacia la izquierda]
Ahora repetiremos el evento con las cuatro direcciones(arriba, izquierda, derecha, abajo)
En "Up" cambiaremos el valor de "Check Empty" X:0 Y:-4 en "Move fixed" la direccion sera arriba y "Change sprite" sera el del jugador hacia arriba.
En "Right" cambiaremos el valor de "Check Empty" X:4 Y:0 en "Move fixed" la direccion sera derecha y "Change sprite" sera el del jugador hacia la derecha.
En "Down" cambiaremos el valor de "Check Empty" X:0 Y:4 en "Move Fixed" la direccion sera abajo y "Change sprite" sera el del jugador hacia abajo.
Ahora añadiremos otro evento, este sera "Outside Room"("Add Event", "Other", "Outside Room"), ahora para las acciones vamos a la pestaña "move", "Wrap Screen" y en "direction" pondremos "in both directions". [Esta accion hara que, si el jugador se sale de la pantalla aparecera del otro lado de ella]
Añadiremos otro evento, vamos a "Add Event", "Other", "Game Start" y las acciones seran "Set lives" y pondremos en "new lives" 3(o cuantas vidas quieras que tenga), sin marcar "relative". Luego "Set Score" y en "new score" ponemos 0, sin marcar "relative". Ahora elegiremos "Score Caption", en "show score" y "show lives" ponemos "show". En "show health" pondremos "don't show", en "score caption" pondremos el nombre de los puntajes y en "lives caption" pondremos el nombre de las vidas.[Esto hace que al iniciar el juego se añadan 3 vidas y se muestre la puntuacion y vidas restantes]
Bien, seguiremos con el evento "No More Lives", luego vamos a la pestaña "score", "Score" y elegimos "Show highscore". Luego vamos a la pestaña "main2", "Game" y elegimos "Restart Game"[Esto hace que al no tener vidas, se muestre la tabla de puntuaciones, acto seguido se reiniciara el juego]
Terminamos el objeto del jugador, ahora pasamos al del enemigo(monster). Lo primero que haremos sera poner en la casilla "Depth" -2, ahora pondremos el evento "Create" y como primera a accion pondremos "Change Sprite"("main1", "Sprite"), en "sprite" pondremos el del enemigo(monster), las casillas de "subimage" y "speed" las dejaran en 0. [Esta accion cambiara el sprite del enemigo al mismo, pero dejando la animacion quieta]
Ahora pondremos la accion "Move Fixed", en la pestaña "move", "Move", y en "Directions" pondremos las horizontales y verticales(izquiera, arriba, derecha, abajo), y en "Speed" pondremos 4. [Este evento hace que al crearse el enemigo, se detenga la animacion de su sprite y se empezaran a mover en cualquiera de las cuatro direcciones]
A continuacion crearemos el evento "Step" y en las acciones pondremos "Check Grid"(en la pestaña "control", "Questions"). En "snap hor" y "snap vert" pondremos 32. [Esta accion verificara que el objeto enemigo(monster) este alineado con una grilla de 32x32 pixeles]
Esto es simple, vamos a la pestaña "control", "Code" y elegimos "Execute Script", en "script" elegiremos el que crearemos anteriormente(adapt_direction), las casillas "argument" las dejamos en 0. [Esta accion ejecutara el script anteriormente creado]
Bien este paso es algo complicado, lo primero sera crear el evento "End Step", y haremos una cadena de acciones.
Añadiremos la accion "Test Variable", en "Variable" pondremos "direction", y en "value" 0, el resto lo dejamos asi como esta.
Añadiremos la accion "Set Variable", en "Variable" pondremos "image_index", y en "value" 2, el resto lo dejamos asi como esta.
Añadiremos la accion "Test Variable", en "Variable" pondremos "direction", y en "value" 90, el resto lo dejamos asi como esta.
Añadiremos la accion "Set Variable", en "Variable" pondremos "image_index", y en "value" 3, el resto lo dejamos asi como esta.
Añadiremos la accion "Test Variable", en "Variable" pondremos "direction", y en "value" 180, el resto lo dejamos asi como esta.
Añadiremos la accion "Set Variable", en "Variable" pondremos "image_index", y en "value" 1, el resto lo dejamos asi como esta.
Añadiremos la accion "Test Variable", en "Variable" pondremos "direction", y en "value" 270, el resto lo dejamos asi como esta.
Añadiremos la accion "Set Variable", en "Variable" pondremos "image_index", y en "value" 0 , el resto lo dejamos asi como esta. [Este evento cambiara el sprite del enemigo dependiendo de la direccion en la que vaya (0, 90, 180, 270)]
Lo siguiente sera crear un evento de colision con el muro(wall), las dos primeras acciones seran "Reverse Horizontal" y "Reverse Vertical", luego pondremos "Execute Script", en "script" pondremos el de "adapt_direction" y en las casillas "argument" dejaremos el 0. [La funcion de este evento es la de crear una direccion al azar del enemigo]
Lo que viene es muy simple, solo hay que crear un evento, este es "Outside Room", luego ir a la pestaña "move", "Jump" y poner la accion "Wrap Screen" y en la casilla "direction" pondremos "in both directions". [Este evento transportara al enemigo al otro lado de la pantalla si este se sale de la misma]
Ahora vamos al objeto del enemigo asustado(scared), lo primero sera poner en la casilla "Parent" el objeto "monster" [Esto hace que este objeto imite las acciones y eventos del objeto "monster"], y a continuacion crear el evento "Alarm 0" y como unica accion pondremos "Change Instance", solo tocaremos la casilla "change into" en la cual pondremos al objeto "monster". [Este evento servira para crear el tiempo en el cual el enemigo permanece vulnerable]
Continuaremos con el objeto del muro"wall", y lo primero sera marcar la casilla "solid"[Esta casilla sirve para indicar que el objeto es solido, por tanto servira para X funciones], lo siguiente sera crear el evento "Create", y pondremos la accion "Change Sprite", el sprite sera el del muro(wall_sprite), las casillas "subimage" y "speed" tendran valor de 0. [Esto hace que el sprite del muro detenga su animación]
Seguiremos con la accion "Test Chance"(en la pestaña "control", "Questions"), en la casilla "sides" pondremos 20. [Esta accion simula tirar un dado de 20 caras con 1 posibilidad entre 20 de que se prosiga con el resto de las acciones]
Y ahora pondremos la accion "Change Sprite", en "sprite" sera el del muro(wall_sprite) y en la casilla "subimage" pondremos 1, pero la casilla "speed" seguira en 0. [Este evento detendra la animacion del sprite en el momento en el que se cree, luego simulara tirar un dado de 20 caras con 1 sola posibilidad de ganar, en caso de que si consiga hacerlo, se cambiara el sprite por uno del mismo con una grieta]
Seguiremos con el objeto "bonus", pondremos el evento "Create" y la primera accion sera "Jump to Position", el valor X sera -1000 y los siguiente sera poner la accion "Set Alarm", en "number of steps" pondremos 500 y en "in alarm no" pondremos "Alarm 0". [Esto mandara el objeto 1000 pixeles hacia la izquierda y luego pondra una alarma]
Lo siguiente sera crear el evento de la alarma("Alarm 0"), lo primero sera poner la accion "Jump to Start", luego pondremos "Set alarm", en "number of steps" pondremos 200 y en " in alarm no" pondremos "Alarm 1". [Este evento hara que al activarse la alarma, este objeto vuelva a su posicion original y active otra alarma]
Ahora duplicaremos el evento "Create", como nuevo evento sera "Alarm 1". Luego creamos otro evento, este es de colision y sera contra el jugador(player), pondremos la accion "Set Score" y en "new score" ponemos 200, marcaremos "relative". A continuacion pondremos la accion "Jump to Position" y pondremos en el valor X -1000. Seguiremos con la accion "Set Alarm", en "number of steps" ponemos 500 y en "in alarm no" dejaremos "Alarm 0". [Este evento hara que al tocar al jugador, se aumente el puntaje, este objeto vaya 1000 pixeles a la izquierda y se active la alarma 0
Listo, ya estara todo hecho...
Ahora crearemos los demas objetos, los cuales no programaremos ahora. Deberemos crear en total todos estos:
Volvemos al objeto del jugador y añadimos el evento "Create" [Esto evento hace que se ejecuten las acciones justo cuando el objeto sea creado]. Luego en las acciones vamos a la pestaña "main1", "Sprite" y elegimos "Change sprite" en "Applies to" lo dejamos en "Self", en "sprite" elegimos el del jugador hacia arriba, los demas valores los dejamos en 0 [Esta accion hara que el jugador se quede quieto hasta que se le ordene moverse].
Ahora crearemos otro evento, este sera "Step" [Este evento hara que las acciones se repitan constantemente]. A continuacion en las acciones pondremos "Test Instance Count"(en la pestaña "control", "Questions"). Donde pone "object" elegimos el de las bolitas(las que pac-man se come, en este caso sera el objeto "point"), en "number" lo dejamos en 0 y en "operation" pondremos "Equal to" [Esta accion verificara que no haya ningun "point," si se cumple lo programado se continuara con el resto de acciones]
Lo siguiente sera poner un "block"(en la pestaña "control", "Other") [Esto hace que si no se cumple una "question" antes programada se saltee hasta el final del block, en caso de que si se cumpla, se haran las acciones dentro del "block"], dentro del "block" pondremos la accion "sleep" y en "milliseconds" pondremos 2000 [Esto hace que se pause el juego durante 2000 milisegundos]. Ahora vamos a la pestaña "main1", "Rooms", y pondremos la accion "Check next" luego "next room", luego vamos a la pestaña "control", "Other" y seleccionamos la accion "Else", ahora crearemos otro "block" [Esto hace que se verifique si existe un siguiente room(nivel), si hay alguno se pasara al siguiente nivel, en caso de no haber se procedera a las acciones del block.] Dentro del "block" ponemos "Show Highscore", en la pestaña "score", "Score", a continuacion vamos a la pestaña "main2" y colocamos la accion "Restart game". [Esto hara que si no existe otra room, se mostrara la tabla de puntaciones y reiniciara el juego]
Ahora crearemos un evento de colision con el enemigo(monster) [Esto hara que las acciones solo se inicien al colisionar con un objeto, en este caso el enemigo], vamos a la pestaña "main2", "Timing" y elegimos "Sleep" y en "milliseconds" ponemos 1500. Luego vamos a la pestaña "move", "Jump" y seleccionamos "Jump to Start", en "Applies to" elegimos "Object" y pondremos "monster".
Nuevamente y en el mismo evento pondremos "Jump to Start" pero ahora en "Applies to" eligiremos el objeto del enemigo asustado(scared).
Seguiremos con la accion "Move Fixed", la direccion sera la del centro(quieto) dejaremos los demas valores asi como estan:
Ahora vamos a la pestaña "control", "Variables" y añadiremos la accion "Set variable" en "variable" pondremos: "image_speed" sin comillas, en "value" lo dejaremos en 0 [El variable "image_speed" se refiere a la velocidad de la animacion del sprite del jugador, si esta en 0 se quedara quieto hasta que se ejecute otro evento que aumente su valor]
Otra vez pondremos "Jump to Start", pero en "Applies to" dejamos "self" y listo:
A continuacion vamos a la pestaña "score", "Lives" y ponemos "Set lives", en "new lives" ponemos -1 y marcamos relative. [Este comando sustituira el numero de vidas a -1, en caso de que "relative" este marcado solo le restara -1 sin remplazar el anterior valor][En total, este evento hara que se espere un tiempo(como para que se reproduzca el sonido de game over) luego mandara a los enemigos a su posicion inicial(suele ser la casita en el centro del nivel del pacman), y despues transportara al jugador a su posicion inicial, lo mantendra quieto, detendra su sprite y restara una vida]
Procederemos a crear otro evento de colision, pero este sera contra el enemigo asustado(scared), la primera accion sera "Jump to Start" y en "applies to" pondremos "Other" [Esto hace que al tocar al enemigo asustado(scared) transportara a la posicion inicial, en este caso al marcar "Other", al otro objeto involucrado, osea "scared"]
Ahora vamos a la pestaña "main1", "Objects" y elegimos, "Change Instance". En "Applies to" pondremos "Other", en "Change into" pondremos al enemigo(monster) y en "perform events" pondremos "not" [Esta accion cambiara al enemigo asustado por el enemigo normal]
Vamos a la pestaña "score", "Score" y pondremos "Set Score" y en "new score" pondremos 100(o el valor que quieran) y marcamos "relative" [Esta accion otorga los puntos asignados en "new score", si esta marcado "relative" sumara el valor con el valor actual y no esta marcado reemplazara el antiguo valor con el nuevo]
Creamos otro evento de colision, pero este ira contra el muro(wall), la primera accion sera "Move fixed"(en la pestaña "move") la direccion sera quito(el centro) y lo demas lo dejaremos. [Esto hara que cuando el jugador choque contra el muro se quede quieto]
Ahora vamos a la pestaña "control", "Variables" y ponemos "Set Variahttp://www.emudesc.net/foros/clear.gifble", en "variable" pondremos: "image_speed" sin comillas, en "value" dejaremos 0. [Esto hace que el sprite de animacion del jugador se detenga al chocar contra un muro.]
A continuacion añadiremos otro evento de colision, este sera contra el objeto "point", y la primera accion sera "Destroy Instance"(en la pestaña "main1", "Objects"), en "Applies to" elegimos "Other". [Esto hace que cuando el jugador toque uno de estos objetos, este se elimine]
Vamos a la pestaña "score", "Score" y ponemos "Set Score", en "new score" ponemos 10(o lo que quieran teniendo en cuenta que se otorgara esa cantidad por cada vez que recoga un "point") y marcamos "relative". [Esta accion otorgara puntos al jugador, 10 por cada "point"(galletas en pacman) que consiga]
Bien, seguiremos añadiendo otro evento de colision, este sera contra el objeto "pil"(las bolas que asustaban a los fantasmas), la primera accion sera "Destroy Instance" y en "Applies to" ponemos "Other". [Esto hace que al conseguir un "pil" este se destruya][/COLOR
Ahora ponemos la accion "Change Instance"(en la pestaña "main1", "Objects"), en "Applies to" pondremos "Object", "scared". Continuamos en "change into", ponemos "monster" y en "perform events" pondremos "not". [Esta accion cambiara el objeto de los "scared"(monstruos asustados) por los "monster"]
Añadiremos nuevamente "Change instance", pero invertiremos los papeles, en "Applies to" ponemos "Object", "monster" y en "change into" pondremos "scared". [Igual que el anterior, pero aqui cambiara el objeto "monster" por "scared"]
Continuaremos poniendo la accion "Set Alarm"(en "main2", "Timing"), en "Applies to" pondremos "object", "scared", en "number of steps" pondremos 160 y en "in alarm no" dejamos "alarm 0", no marcaremos "relative". [Esta accion mandara una alarma a todos los objetos "scared", dicha alarma la programaremos despues]
Ahora pondremos otro evento, este sera "Keyboard left"("Add Event", "Keyboard", "Left"), lo seguido sera añadir la accion "Check Empty", el valor X le pondremos -4 y marcamos "relative". [Esta accion verifica que no haya nada a una distancia de 4 pixeles]
Seguiremos añadiendo dentro de un "block" la accion "Move Fixed", la direccion sera a la izquierda y en "speed" va 4. [Esta accion, al estar dentro de un "block", tendra que primero esperar la señal de verificacion, si se cumple lo requerido, el jugador se movera a la izquierda]
Lo siguiente sera poner la accion "Change Sprite"(en "main1", "Sprite") y en "sprite" pondremos el del jugador caminando hacia la izquierda("player_left"), donde dice "subimage" le pondremos -1 y en "speed" ponemos 0.5. [Esta accion cambiara el sprite del jugador por uno del mismo pero caminando hacia la izquierda]
Ahora repetiremos el evento con las cuatro direcciones(arriba, izquierda, derecha, abajo)
En "Up" cambiaremos el valor de "Check Empty" X:0 Y:-4 en "Move fixed" la direccion sera arriba y "Change sprite" sera el del jugador hacia arriba.
En "Right" cambiaremos el valor de "Check Empty" X:4 Y:0 en "Move fixed" la direccion sera derecha y "Change sprite" sera el del jugador hacia la derecha.
En "Down" cambiaremos el valor de "Check Empty" X:0 Y:4 en "Move Fixed" la direccion sera abajo y "Change sprite" sera el del jugador hacia abajo.
Ahora añadiremos otro evento, este sera "Outside Room"("Add Event", "Other", "Outside Room"), ahora para las acciones vamos a la pestaña "move", "Wrap Screen" y en "direction" pondremos "in both directions". [Esta accion hara que, si el jugador se sale de la pantalla aparecera del otro lado de ella]
Añadiremos otro evento, vamos a "Add Event", "Other", "Game Start" y las acciones seran "Set lives" y pondremos en "new lives" 3(o cuantas vidas quieras que tenga), sin marcar "relative". Luego "Set Score" y en "new score" ponemos 0, sin marcar "relative". Ahora elegiremos "Score Caption", en "show score" y "show lives" ponemos "show". En "show health" pondremos "don't show", en "score caption" pondremos el nombre de los puntajes y en "lives caption" pondremos el nombre de las vidas.[Esto hace que al iniciar el juego se añadan 3 vidas y se muestre la puntuacion y vidas restantes]
Bien, seguiremos con el evento "No More Lives", luego vamos a la pestaña "score", "Score" y elegimos "Show highscore". Luego vamos a la pestaña "main2", "Game" y elegimos "Restart Game"[Esto hace que al no tener vidas, se muestre la tabla de puntuaciones, acto seguido se reiniciara el juego]
Terminamos el objeto del jugador, ahora pasamos al del enemigo(monster). Lo primero que haremos sera poner en la casilla "Depth" -2, ahora pondremos el evento "Create" y como primera a accion pondremos "Change Sprite"("main1", "Sprite"), en "sprite" pondremos el del enemigo(monster), las casillas de "subimage" y "speed" las dejaran en 0. [Esta accion cambiara el sprite del enemigo al mismo, pero dejando la animacion quieta]
Ahora pondremos la accion "Move Fixed", en la pestaña "move", "Move", y en "Directions" pondremos las horizontales y verticales(izquiera, arriba, derecha, abajo), y en "Speed" pondremos 4. [Este evento hace que al crearse el enemigo, se detenga la animacion de su sprite y se empezaran a mover en cualquiera de las cuatro direcciones]
A continuacion crearemos el evento "Step" y en las acciones pondremos "Check Grid"(en la pestaña "control", "Questions"). En "snap hor" y "snap vert" pondremos 32. [Esta accion verificara que el objeto enemigo(monster) este alineado con una grilla de 32x32 pixeles]
Esto es simple, vamos a la pestaña "control", "Code" y elegimos "Execute Script", en "script" elegiremos el que crearemos anteriormente(adapt_direction), las casillas "argument" las dejamos en 0. [Esta accion ejecutara el script anteriormente creado]
Bien este paso es algo complicado, lo primero sera crear el evento "End Step", y haremos una cadena de acciones.
Añadiremos la accion "Test Variable", en "Variable" pondremos "direction", y en "value" 0, el resto lo dejamos asi como esta.
Añadiremos la accion "Set Variable", en "Variable" pondremos "image_index", y en "value" 2, el resto lo dejamos asi como esta.
Añadiremos la accion "Test Variable", en "Variable" pondremos "direction", y en "value" 90, el resto lo dejamos asi como esta.
Añadiremos la accion "Set Variable", en "Variable" pondremos "image_index", y en "value" 3, el resto lo dejamos asi como esta.
Añadiremos la accion "Test Variable", en "Variable" pondremos "direction", y en "value" 180, el resto lo dejamos asi como esta.
Añadiremos la accion "Set Variable", en "Variable" pondremos "image_index", y en "value" 1, el resto lo dejamos asi como esta.
Añadiremos la accion "Test Variable", en "Variable" pondremos "direction", y en "value" 270, el resto lo dejamos asi como esta.
Añadiremos la accion "Set Variable", en "Variable" pondremos "image_index", y en "value" 0 , el resto lo dejamos asi como esta. [Este evento cambiara el sprite del enemigo dependiendo de la direccion en la que vaya (0, 90, 180, 270)]
Lo siguiente sera crear un evento de colision con el muro(wall), las dos primeras acciones seran "Reverse Horizontal" y "Reverse Vertical", luego pondremos "Execute Script", en "script" pondremos el de "adapt_direction" y en las casillas "argument" dejaremos el 0. [La funcion de este evento es la de crear una direccion al azar del enemigo]
Lo que viene es muy simple, solo hay que crear un evento, este es "Outside Room", luego ir a la pestaña "move", "Jump" y poner la accion "Wrap Screen" y en la casilla "direction" pondremos "in both directions". [Este evento transportara al enemigo al otro lado de la pantalla si este se sale de la misma]
Ahora vamos al objeto del enemigo asustado(scared), lo primero sera poner en la casilla "Parent" el objeto "monster" [Esto hace que este objeto imite las acciones y eventos del objeto "monster"], y a continuacion crear el evento "Alarm 0" y como unica accion pondremos "Change Instance", solo tocaremos la casilla "change into" en la cual pondremos al objeto "monster". [Este evento servira para crear el tiempo en el cual el enemigo permanece vulnerable]
Continuaremos con el objeto del muro"wall", y lo primero sera marcar la casilla "solid"[Esta casilla sirve para indicar que el objeto es solido, por tanto servira para X funciones], lo siguiente sera crear el evento "Create", y pondremos la accion "Change Sprite", el sprite sera el del muro(wall_sprite), las casillas "subimage" y "speed" tendran valor de 0. [Esto hace que el sprite del muro detenga su animación]
Seguiremos con la accion "Test Chance"(en la pestaña "control", "Questions"), en la casilla "sides" pondremos 20. [Esta accion simula tirar un dado de 20 caras con 1 posibilidad entre 20 de que se prosiga con el resto de las acciones]
Y ahora pondremos la accion "Change Sprite", en "sprite" sera el del muro(wall_sprite) y en la casilla "subimage" pondremos 1, pero la casilla "speed" seguira en 0. [Este evento detendra la animacion del sprite en el momento en el que se cree, luego simulara tirar un dado de 20 caras con 1 sola posibilidad de ganar, en caso de que si consiga hacerlo, se cambiara el sprite por uno del mismo con una grieta]
Seguiremos con el objeto "bonus", pondremos el evento "Create" y la primera accion sera "Jump to Position", el valor X sera -1000 y los siguiente sera poner la accion "Set Alarm", en "number of steps" pondremos 500 y en "in alarm no" pondremos "Alarm 0". [Esto mandara el objeto 1000 pixeles hacia la izquierda y luego pondra una alarma]
Lo siguiente sera crear el evento de la alarma("Alarm 0"), lo primero sera poner la accion "Jump to Start", luego pondremos "Set alarm", en "number of steps" pondremos 200 y en " in alarm no" pondremos "Alarm 1". [Este evento hara que al activarse la alarma, este objeto vuelva a su posicion original y active otra alarma]
Ahora duplicaremos el evento "Create", como nuevo evento sera "Alarm 1". Luego creamos otro evento, este es de colision y sera contra el jugador(player), pondremos la accion "Set Score" y en "new score" ponemos 200, marcaremos "relative". A continuacion pondremos la accion "Jump to Position" y pondremos en el valor X -1000. Seguiremos con la accion "Set Alarm", en "number of steps" ponemos 500 y en "in alarm no" dejaremos "Alarm 0". [Este evento hara que al tocar al jugador, se aumente el puntaje, este objeto vaya 1000 pixeles a la izquierda y se active la alarma 0
Listo, ya estara todo hecho...
Errores
Nada... por ahora
Última edición por un moderador: