3. tutorialguiabasico 2014

31
Centro de Estudios de Ingeniería de Software LABORATORY OPENSOURCE SOLUTION Guía básica de Construct2 Programación de VideoJuegos Fuente: http://www.scirra.com/tutorials/37/beginners-guide-to-construct-2 Informe Técnico Instructivo de Instalación de Construct2 Laboratory Opensource Solutions David Biava Mauricio Westermeyer Bastián Barrientos Víctor Aravena [email protected]

description

Construct 5 - VideoGame VideoJuegos Desarrollo aplicaciones

Transcript of 3. tutorialguiabasico 2014

Page 1: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Guía básica de Construct2

Programación de VideoJuegos Fuente: http://www.scirra.com/tutorials/37/beginners-guide-to-construct-2

Informe Técnico Instructivo de Instalación de Construct2

Laboratory Opensource Solutions David Biava

Mauricio Westermeyer Bastián Barrientos

Víctor Aravena [email protected]

Page 2: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Primeros pasos:

Haga clic en el botón archivo y seleccione Nuevo.

En el cuadro de diálogo, Nuevo proyecto, no es necesario cambiar nada. Construct 2 mantendrá el proyecto en su totalidad en un solo archivo. Capx como extensión. Ahora podemos ver la vista principal de diseño, en el que se crearan y colocarán los objetos. Véalo como un nivel del juego o una pantalla de menú. En otras herramientas, esto podría haber sido llamado una escena o marco.

Page 3: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Insertar objetos:

Fondo en forma de mosaico:

Lo primero que queremos es un mosaico de fondo repitiéndose. El objeto de fondo en mosaico puede hacer esto por nosotros.

Haga doble clic en un espacio en el diseño para insertar un nuevo objeto. (Más tarde, cuando el layout esté completo, también puede hacer esto haciendo clic derecho y seleccionando Insertar nuevo objeto.) Una vez que el cuadro de diálogo Insertar nuevo objeto aparece, haga doble clic en el objeto Tiled Background para insertarlo.

Page 4: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Un “punto de mira” aparecerá para que usted pueda indicar dónde colocar el objeto. Haga clic en algún lugar cerca de la mitad del layout. El editor de texturas ahora se abre, para que usted pueda entrar en la textura de fondo. Vamos a importar la imagen de mosaico que has guardado anteriormente. Haga clic en el icono de carpeta para cargar una textura desde el disco, encontrar el punto donde está el archivo y selecciónelo.

Cierre el editor de texturas. Asegúrese de guardar el cambio! Ahora usted debe ver el objeto como fondo en mosaico en el diseño. Vamos a cambiar su tamaño para cubrir todo el trazado. Asegúrese de que está seleccionado, la Barra de Propiedades de la izquierda debe mostrar todos los ajustes para el objeto, incluyendo su tamaño y

Page 5: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

posición. Ajuste su posición a 0, 0 (la parte superior izquierda de la distribución), y su tamaño para 1280,1024 (el tamaño del fondo).

Vamos a examinar nuestro trabajo. Mantenga el botón control y desplace la rueda del mouse hacia abajo para alejar. De forma alternativa, haga clic en Ver - y aleje la imagen un par de veces. Su fondo ahora debe cubrir todo el trazado actual:

Presione control + 0 o haga clic en Ver - Zoom al 100% para volver a la vista 1:1

Para ver tu fondo en un navegador, puedes apretar Run layout.

Añadir una capa

Bien, ahora queremos añadir más objetos. Sin embargo, podríamos por accidente seleccionar el fondo a menos que lo bloqueáramos, puesto que es seleccionable. Vamos a utilizar el sistema de capas para hacer esto.

Page 6: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Los layout pueden tener varias capas, que se utilizan para agrupar los objetos. Imagine estas capas como una lámina de vidrio puesta una encima de la otra. Con objetos pintados en cada lámina.

Esto permite organizar fácilmente los objetos que aparecen superiores a los demás, estas capas se pueden ocultar o impedir su uso utilizando la llave. Por ejemplo en este juego requerimos que los objetos se vean sobre el fondo, para esto vamos a hacer otra capa en la cual irán los demás objetos.

Para gestionar las capas, haga clic en la pestaña de Capas, que generalmente está al lado de la barra del proyecto:

Usted debe ver a la capa 0 en la lista. Haga clic en el icono del lápiz y cambiarle el nombre por fondo, ya que es nuestra capa de fondo. Ahora haga clic en el icono 'Añadir' un signo más en verde, para añadir una nueva capa para los otros objetos. Vamos a llamar a esta “principal”. Por último, si hace clic en el icono candado que está al lado del nombre de la capa, está se bloqueará. Eso significa que usted no será capaz de seleccionar algo en ella. Eso es muy conveniente para nuestro fondo , que es fácil para seleccionar accidentalmente y no tendrá que ser tocado de nuevo. Sin embargo, si necesita hacer cambios, puede hacer clic en el candado de nuevo para desbloquear. Las casillas de verificación le permiten también ocultar las capas en el editor, pero no es necesario en este momento. Su barra de capas debe parecerse a esto:

Page 7: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Ahora, asegúrese de que la capa "principal" está seleccionada en la barra de capas. Esto es importante - la capa seleccionada es la capa activa. Todos los nuevos objetos insertados se insertan a la capa activa, por lo que si no está seleccionada, podríamos insértalos en una capa equivocada. La capa activa se muestra en la barra de estado, y también aparece al colocar un nuevo objeto.

Añadir los objetos de entrada

Diríjase a su layout o vista principal. Haga doble clic para insertar otro nuevo objeto. Esta vez, seleccione el objeto Mouse, ya que usaremos el ratón. Haga lo mismo para el objeto de teclado. Nota: Para estos objetos no es necesario colocar en el layout o vista. Ellos están ocultos, y funcionan automáticamente en el proyecto. Ahora todos los layout o vistas de nuestro proyecto pueden aceptar entradas del ratón y teclado.

Page 8: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Los objetos del juego

Es el momento de insertar nuestros objetos del juego!

Jugador:

Monstruo:

Explosión:

Page 9: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Para cada uno de estos objetos, se va a utilizar un objeto tipo Sprite. Simplemente muestra una textura, que puede moverse, girar y cambiar de tamaño. Los juegos por lo general están compuestos en su mayoría a partir de objetos Sprite. Vamos a insertar cada uno de los anteriores objetos. El proceso es similar al de insertar el fondo:

1. Haga doble clic para insertar un nuevo objeto

2. Haga doble clic en el objeto 'Sprite' .

3. Cuando el ratón se convierte en una cruz, haga clic en alguna parte del diseño. La descripción debe ser 'principal'. (Recuerde que este es el diseño activo.)

4. El editor de imágenes aparece. Haga clic en el icono abrir, y cargue una de las cuatro imágenes.

5. Cierre el editor de imágenes, guarde los cambios. Ahora debería ver el objeto en el diseño!

Mueva los sprites de bala y explosión a alguna parte fuera del borde de la vista- no queremos verlos cuando se inicia el juego. Estos objetos se llaman Sprite, Sprite2, Sprite3 y Sprite4. Eso no es muy útil - esto puede confundirte. Cambiar el nombre a Player, Monster, bala y explosión, según corresponda. Usted puede hacerlo seleccionando el objeto y a continuación, cambiar la propiedad Name en la barra de propiedades:

Page 10: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Añadir comportamientos

Los comportamientos son funcionalidades pre-hechas en construir 2. Por ejemplo, puede añadir un comportamiento de plataforma a un objeto, y el comportamiento sólido en el suelo, y al instante se puede pasar a un buen juego de plataformas. Usted puede hacer lo mismo en los eventos, pero toma más tiempo. Así que vamos a echar un vistazo a los comportamientos que podemos utilizar. Entre otras cosas, construir 2 dispone de estas conductas; - 8 direcciones de movimiento. Esto le permite mover un objeto con las teclas de flecha. muy bueno para el movimiento de jugador. - Movimiento de bala. Esto simplemente hace que se mueva hacia adelante un objeto en su ángulo actual. Se va a usar mucho para las balas de los jugadores. A pesar del nombre, también funciona muy bien para el movimiento de los monstruos – y todos los objetos con movimiento hacia adelante y a una cierta velocidad. - Scroll to. Esto hace que la pantalla siga a un objeto que se mueve (también conocido como desplazamiento). Esto será útil en el jugador. - Bound to layout. Esto evitará que un objeto salga del área de diseño. Esto también será útil para que la vista al reproducir no pueda desviarse fuera del área de juego! - Destroy outside layout. Esto destruye los objetos que salgan del área de juego. Es útil para nuestras balas. Sin ello, las balas vuelan fuera de la pantalla para siempre, usando un poco de memoria.

- Fade. Esto hace que un objeto se desvanezca poco a poco una vez que aparece.

Vamos a añadir estos comportamientos a los objetos que los necesitan.

Page 11: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Cómo agregar un comportamiento

Vamos a añadir el comportamiento de dirección en 8 movimientos para el jugador. Haga clic en el objeto para seleccionarlo. En la barra de propiedades, en la categoría de comportamientos. Haga clic en Agregar / Editar .

Haga clic en el icono 'Añadir un comportamiento' la cruz verde que se muestra en la ventana. Haga doble clic en el movimiento “8 direcciones” para añadirlo.

Haga lo mismo pero esta vez agregar Scroll To, para que la pantalla siga el jugador, y también Bound to layout, para mantenerlos en el interior del diseño. El diálogo de los comportamientos ahora debería tener este aspecto:

Page 12: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Cierre la ventana de comportamientos. Guarde y Pulse Ejecutar para probar el juego. Deben tener un navegador compatible con HTML5.

Agregar los otros comportamientos

Podemos agregar comportamientos a los otros objetos con el mismo método -selecciónelo, haga clic en Agregar / Editar para abrir el diálogo de los comportamientos, y añadir algunos comportamientos. Vamos a añadir los siguientes comportamientos:

1. Añadir el Bullet movement y Destroy outside layout al objeto de bala.

2. Añadir el Bullet movement al objeto Monster (ya que sólo se mueve hacia adelante también)

3. Añadir el comportamiento Fade al objeto de explosiones (desaparece poco a poco después de aparecer). Por defecto, el comportamiento de fundido también hace que el objeto en cuestión de destruya una vez de halla desvanecido completamente.

Si se ejecuta el juego, es posible que note, que los monstruos se mueven con bastante rapidez. Vamos a reducir la velocidad. Seleccione el objeto de Monster. Cómo ya hemos añadido un comportamiento, algunas propiedades adicionales aparecen en la barra de propiedades:

Page 13: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Esto nos permite ajustar los comportamientos. Cambie la velocidad de400 a 80 (esto es en píxeles por segundo).

Del mismo modo, cambiar la velocidad del objeto bala a 600, y el comportamiento de fundido “fade of time” del objeto explosión a 0,5 (que es la mitad de un segundo).

Crear algunos monstruos más:

Manteniendo control, haga clic y arrastre el objeto de Monster. Usted notará que genera otra instancia. Esto es simplemente otro objeto del tipo de objeto Monster. Los tipos de objetos son esencialmente 'clases' de los objetos. Los eventos tratan principalmente con tipos de objetos. Por ejemplo, usted podría hacer un evento que dice que "si choca bala con Monster". Esto en realidad significa "En el caso de que un objeto tipo bala choca con un objetos de cualquier instancia del tipo de Monster" - en lugar de tener que hacer un evento por separado para cada uno de los monstruos. Con los Sprites, todas las instancias de un tipo de objeto también comparten la misma imagen. Esto es muy eficiente - cuando los jugadores juegan su juego en línea, en lugar de tener que descargar 8 imágenes monstruo para 8 monstruos iguales, sólo es necesario descargar una textura monstruo y construir 2 lo repite 8 veces. Vamos a cubrir más información sobre los tipos de objetos frente a las instancias más tarde. Por ahora, un buen ejemplo es Pensar que un enemigo “real” en realidad es una instancia de ese tipo de objeto.

Page 14: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Usa control + arrastrar, y crea 7 u 8 nuevos monstruos. No coloque ninguno demasiado cerca del jugador, o podrían morir de inmediato.

Ahora es momento de pasar a los eventos:

Eventos En primer lugar, haga clic en la pestaña de eventos, en la parte superior, al lado de la pestaña layout, para cambiar a la hoja donde se editarán los eventos.. se pueden tener hojas de eventos para las diferentes partes del juego, o para organizarlos. Una hoja también puede incluir otras hojas de eventos, esto permite reutilizar los eventos de la hoja incluida. Esto no será necesario en este ejemplo.

Acerca de los eventos

Como indica el texto de la hoja en blanco, construct2 “corre” todos los eventos de la hoja una vez por tick. La mayoría de los monitores actualizan su pantalla 60 veces por segundo, por lo que construct2 intentará que coincida esto con la visualización. Esto

Page 15: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

significa que la hoja de eventos normalmente se ejecuta 60 veces por segundo, redibujando la pantalla cada vez. De esta manera se ordena: "ejecute los eventos a continuación, luego dibújelos en la pantalla". Los eventos corren de arriba hacia abajo, por lo que los acontecimientos en la parte superior de la hoja de eventos se ejecutan primero. Condiciones, acciones y sub-eventos

Los eventos se refieren a las condiciones, prueba si se cumplen ciertos criterios, por ejemplo, "¿está la barra espaciadora presionada”? Si todas estas condiciones se cumplen, las acciones del evento se ejecutan, por ejemplo, "Crear un objeto de bala". Después de que las acciones se han ejecutado, los sub eventos también se ejecuta- éstos pueden probar más condiciones y a continuación, ejecutar más acciones, a continuación, más sub-eventos, y así sucesivamente. Con el uso de este sistema, podemos construir funcionalidades muy sofisticadas para nuestros juegos y aplicaciones. Sin embargo no se van a usar sub eventos para este tutorial.

Vamos a repasar. En resumen, un evento básicamente es como sigue:

Están todas las condiciones que se requieren?

o Sí: se ejecutan todas las acciones del evento.

o No: ir al siguiente evento (sin incluir los sub-eventos).

Construct2 ofrece una gran cantidad de características de evento para cubrir un montón de cosas diferentes que puede que necesiten hacer.

Su primer evento

Queremos que el jugador siempre “mire” hacia el ratón. Se parece a esto cuando haya terminado:

Page 16: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Recuerde que un Tick se ejecuta cada vez que se dibuja la pantalla, así que si hacemos que el jugador mire hacia el mouse en cada Tick, parecerá que siempre está mirando hacia el ratón.

Vamos a empezar a hacer este evento. Haga doble clic en un espacio en la hoja de eventos. Esto nos pedirá agregar una condición para el nuevo evento.

Objetos diferentes tienen diferentes condiciones y acciones en función de lo que pueden hacer. Está también el objeto de sistema, el que representa funcionalidades integrada de Construct2 . Haga doble clic en el objeto de sistema, como se muestra. El diálogo entonces muestra una lista de todas las condiciones del objeto de sistema:

Page 17: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Haga doble clic en la condición de every tick para insertarlo. El diálogo se cierra y el evento se crea, sin acciones. Ahora debería tener este aspecto:

Ahora queremos agregar una acción, que es hacer que el jugador mire al ratón. Haga clic en el enlace de acción que está a la derecha del evento. El cuadro de diálogo agregar acción aparecerá:

Page 18: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Al igual que al agregar un evento, tenemos nuestra misma lista de objetos para elegir, pero esta vez es para añadir una acción Como se muestra, haga doble clic en el objeto Player, ya que queremos que el jugador mire en todo momento al ratón. La lista de acciones disponibles en el objeto Player aparece:

Observe como en las acciones de jugador 8direction tiene sus propios comportamientos de movimiento. No hace falta preocuparse por eso ahora.

En lugar de ajustar el ángulo del jugador a un número de grados, es conveniente utilizar Set angle towards position. Esta calculará automáticamente el ángulo donde tiene que ir el objeto jugador en las coordenadas x e y, a continuación, ajustar el ángulo del objeto a eso. Haga doble clic en Set angle towards position.

Construct2 ahora tiene que saber la coordenada X y Y para señalar al jugador donde “mirar”:

Page 19: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Esto se denomina parámetros de la acción. Las condiciones pueden tener algunos parámetros, pero everytick no necesita ninguno.

Queremos establecer el ángulo hacia la posición del ratón. El objeto mouse puede proporcionar esto. Ingrese Mouse.X para X y Mouse.Y para Y. estas se llaman expresiones. Son los montos que se calculan. Por ejemplo, podría también ingresar Mouse.X+100 para X, y sin(Mouse.Y ) para Y. De esta manera se puede utilizar cualquier dato, de cualquier objeto, o de cualquier cálculo, esto para elaborar parámetros en las acciones y condiciones. Es muy potente y una fuente oculta de la flexibilidad de construct2. ¿Recibió un error que dice "El mouse no es un nombre de objeto"? Asegúrese de que ha añadido el objeto Mouse.

Haga clic en el “done” en el dialogo de parámetros. La acción se agrega, debería tener este aspecto:

Su primer evento! Trate de ejecutar el juego, y el jugador ahora debe ser capaz de moverse como antes, pero siempre de cara al ratón. Este es nuestro primer bit de una funcionalidad personalizada.

Agregar funcionalidades del juego

Page 20: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Si cada evento es descrito con tanto detalle como antes, va a ser un tutorial muy largo. Vamos a hacer una breve descripción para los próximos eventos. Recuerde, los pasos para agregar una condición o acción son los siguientes:

1. Haga doble clic para insertar un nuevo evento, o haga clic en un vínculo de la acción agregar para agregar una acción.

2. Haga doble clic en el objeto de la condición / acción.

3. Haga doble clic en la condición / acción que desee.

4. Introduzca los parámetros, si es que hacen falta.

De ahora en adelante, los eventos se describe como el objeto, seguido por la condición / acción, seguido de los parámetros. Por ejemplo, el caso que acabamos de insertar se podría escribir:

1. Add condition System -> Every tick

2. Add action Player -> Set angle towards position -> X: Mouse.X, Y: Mouse.Y

Page 21: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Hacer que el jugador dispare:

Cuando el jugador hace clic, se debe disparar una bala. Esto se puede hacer con la acción Spawn an object del jugador, lo que crea una nueva instancia de un objeto en la misma posición y ángulo. El movimiento de bala que agregó anteriormente a continuación hará ir hacia delante la bala. Haga el siguiente evento:

1. Condition: Mouse -> On click -> Left clicked (the default)

2. Action: Player -> Spawn another object -> For Object, escoge el objeto bala. Para el Layer, coloca 1 deja Image point en 0.

Debe parecerse a esto:

Si se ejecuta el juego, te darás cuenta que las balas se disparan desde el centro del jugador, en lugar del final de la pistola. Vamos a fijar mediante la colocación de un punto de imagen en el extremo de la pistola.

Haga clic con el jugador en el proyecto o la barra de objetos y seleccione Editar animaciones.

El editor de imágenes para el jugador aparece. Haga clic en la imagen de origen y la herramienta de puntos:

Page 22: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

... y el cuadro de diálogo de los puntos de imagen se abre

Observe que el origen del objeto aparece como una mancha roja. Ese es el "punto caliente" o "punto de giro" del objeto. Si gira el objeto, éste gira en torno al origen. Queremos añadir otro punto de la imagen para representar a la pistola, así que haga clic en el botón añadir verde. Un punto azul aparece - ese es nuestro punto nuevo. Haga clic izquierdo en el extremo de la pistola del jugador para colocar el punto de la imagen allí:

Page 23: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Cierre el editor de imágenes. Haga doble clic la acción que agregó anteriormente y cambiar el punto de la imagen a 1. (. El origen es siempre el punto de la primera imagen) El evento debe parecerse al de abajo.

Ejecute el juego. Las balas ya se deberían disparar desde el extremo de su pistola Las balas por el momento no hacen nada. Esperemos, sin embargo, que usted comenzara a darse cuenta, de que una vez que llegue a familiarizarse con el sistema de eventos, podrá poner las funcionalidades con mayor rapidez.

Vamos a hacer que las balas maten a los monstruos. Añadir el siguiente evento:

1. Condition: Bullet -> On collision with another object -> pick Monster.

2. Action: Monster -> Destroy

3. Action: Bullet -> Spawn another object -> Explosion, layer 1

4. Action: Bullet -> Destroy

El efecto de la explosión

Ejecutar el juego, y dispárale a un monstruo. Vaya, la explosión tiene un enorme borde negro.

Usted podría haber predicho esto desde el principio, y se preguntó si nuestro juego realmente iba a acabar así. No te preocupes, no lo hará. Haga clic en el objeto de explosión, ya sea en la barra de objetos en la parte inferior derecha, o en la barra del

Page 24: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

proyecto. Sus propiedades aparecen en la barra de propiedades de la izquierda. En la parte inferior, establezca en su propiedad al efecto aditivo. Ahora prueba el juego de nuevo.

¿Por qué funciona esto? Las imágenes normales se pegan en la parte superior de la pantalla. Con el efecto aditivo, cada pixel es añadido con el píxel del fondo detrás de él. El negro es un valor de píxel cero, por lo que nada se añade – por lo que no se ve el fondo negro. Es muy bueno para las explosiones y efectos de iluminación.

Hacer monstruos un poco más inteligente

Ahora los monstruos simplemente se pasean a la derecha de la vista. Vamos a hacer que ellos sean un poco más interesantes. En primer lugar, van a comenzar en un ángulo al azar.

1. Condition: System -> On start of Layout

2. Action: Monster -> Set angle -> random(360)

Todavía vagará para siempre cuando salga de la vista, para nunca ser visto otra vez. Vamos a mantenerlos dentro. Lo que vamos a hacer es que vuelvan al jugador al salir de la vista. Esto hace dos cosas: que siempre se mantengan dentro de la disposición, y si el jugador se queda quieto, los monstruos vienen directo hacia él.

1. Condition: Monster -> Is outside layout

2. Action: Monster -> Set angle toward position -> For X, Player.X - for Y, Player.Y.

Page 25: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Ejecute el juego. Si usted se mueve alrededor por un tiempo, te darás cuenta que los monstruos quedan alrededor de la vista, y van en todo tipo de direcciones. Ahora, supongamos que tenemos que disparar a un monstruo cinco veces antes de que este muera, en lugar de una muerte instantánea, como es en este momento. ¿Cómo lo hacemos? Si sólo se almacena en un contador de salud global, entonces una vez que hemos disparado a un monstruo cinco veces, todos los monstruos van a morir. En cambio, necesitamos que cada monstruo tenga su propia salud. Podemos hacer eso con las variables de instancia.

Las variables de instancia

Las variables de instancia permitir que cada monstruo pueda almacenar un valor para su salud. Una variable es simplemente un valor que puede cambiar (o modificarse), y se almacenan por separado para cada caso.

Agregar una variable de instancia de nombre salud a nuestro monstruo. Haga clic en el monstruo en la barra de proyecto o barra de objetos. Alternativamente, usted puede cambiar de nuevo a la vista de diseño y seleccionar un objeto de monstruo. Esto mostrará las propiedades de los monstruos en la barra de propiedades. Haga clic en Agregar / editar las variables de instancia.

El cuadro de diálogo Variables de Instancia aparece. Es similar al cuadro de diálogo de Comportamientos que hemos visto anteriormente, pero este le permite añadir y cambiar las variables de instancia para el objeto. Haga clic en el botón verde agregar para agregar una nueva variable

Page 26: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

En el cuadro de dialogo que aparece, para el nombre coloque salud, deje el tipo en número, y por valor inicial 5 (como se muestra). Así se inicia en 5 la salud de todos los monstruos. Cuando se recibe un balazo vamos a restar 1 a la salud y cuando la salud sea cero, vamos a destruir el objeto.

Una vez que haya terminado haga clic en Aceptar. Tenga en cuenta que la variable aparece ahora en el cuadro de diálogo variables de instancia y también en las propiedades para el monstruo. (Así puede cambiar rápidamente los valores iniciales en la barra de propiedades.

Page 27: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Cambio de los eventos

Vuelva a la hoja de evento. En este momento, estamos destruyendo los monstruos, tan pronto como la bala les pega. Vamos a cambiar eso y restaremos 1 a su salud. Encontrar el caso de que se lee: Bullet - on collision with Monster. Entonces la acción "destroy monster”. Vamos a sustituirla por "restar 1 a la salud". Haga clic en la acción "destruir monstruo" y haga clic en Reemplazar.

En el cuadro de diálogo aparece como si estuviéramos introduciendo una nueva acción, pero esta vez va a sustituir la acción por una nueva. Elija Monster -> Subtract from (variables de instancia) - Instancia> variable "salud". Haga clic en Done. La acción debe aparecer ahora de esta manera

Ahora, cuando le disparemos a los monstruos estos pierden uno de salud y la bala estalla, pero aún no hemos hecho una acción que mate a los monstruos cuando su salud llegue a cero. Añadiremos eso en otro evento:

1. Condition: Monster -> Compare instance variable -> Health, Less or equal, 0

2. Action: Monster -> Spawn another object -> Explosion, layer 1

3. Action: Monster -> Destroy

Page 28: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

¿Por qué " menor o igual a 0" y no "es igual a 0"? Supongamos que hemos añadido otra arma más poderosa que resta 2 de salud. A medida que disparemos al monstruo, su salud va en 5, 3, 1, -1, -3, etc. En ningún momento fue igual a cero, entonces nunca va a morir. Por lo tanto, es una buena práctica utilizar "menor o igual" para comprobar si la salud se ha agotado.

Ejecutar el juego. Ahora tiene que golpear a los monstruos cinco veces para matarlos

La puntuación Vamos a tener una puntuación para que el jugador vea cuantos monstruos ha matado. Vamos a necesitar una variable para ello. Se podría pensar “Pondré una variable de instancia al jugador” No es una mala idea, pero recuerde que el valor se almacena en el objeto. Por lo tanto si el objeto muere. Se perdería el contador. En su lugar, podemos utilizar una variable global. Al igual que una variable de instancia, en una variable global se puede almacenar texto o un número. Sin embargo, sólo hay un valor almacenado, y este también está disponible para todo el juego en todos los layout - conveniente si le sumamos otros niveles. Haga clic derecho en el espacio en la parte inferior de la hoja de evento, y seleccione Agregar variable global.

Page 29: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Escriba puntaje en el nombre. Los otros valores predeterminados están bien, va ser un número que comienza en 0.

Ahora la variable global aparece como una línea en la hoja de evento. Es en esta hoja de evento, aunque se puede acceder a ella en cualquier otra hoja de eventos. (Si las hubiera).

Vamos a dar al jugador un punto por matar a un monstruo. En nuestro evento "Monster: health less or equal 0" (cuando un monstruo muere), haga clic en Agregar acción y seleccione System -> Add to (under Global & local variables) -> Score, value 1.

Debería verse así;

Ahora el jugador tiene una puntuación, lo que aumenta en 1 por cada monstruo que mata - pero no puede ver su puntuación. Vamos a mostrar aquello con un objeto de texto.

Creación de un heads-up display (HUD)

Una pantalla de heads-up (también conocido como HUD) es la interfaz que se muestra al jugador, donde está la salud, la puntuación y otra información del juego. Vamos a hacer una HUD de un objeto de texto.

El HUD se mantiene siempre en el mismo lugar en la pantalla. Si tenemos algunos objetos de la interfaz, no queremos que se desplace a medida que el jugador camina alrededor, debe permanecer en la pantalla. De forma predeterminada, las capas se desplazan. Para

Page 30: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

evitar que la pantalla se desplace, podemos utilizar la configuración de la capa de Parallax. Parallax permite que diferentes capas se desplazasen a diferentes velocidades para una especie de semi-efecto 3D. Si fijamos la paralaje a cero, sin embargo, la capa no se desplazará - ideal para un HUD.

Volver a la barra de capas que se utilizó anteriormente. Añadir una nueva capa llamada HUD. Asegúrese de que sea en la parte superior, y selecciónela (recuerda que esto hace que sea la capa activa). La barra de Propiedades ahora debe mostrar sus propiedades. Establezca la propiedad Parallax a 0, 0 (que es cero en ambos ejes X e Y).

Haga doble clic en un espacio para insertar otro objeto. Esta vez, elegir el objeto de texto. Colóquelo en la esquina superior izquierda del diseño. Va a ser difícil de ver si es negro, por lo que en la barra de propiedades, ponerlo en negrita, cursiva, color amarillo, y elegir un tamaño de letra un poco más grande. Cambiar el tamaño lo suficientemente amplia como para adaptarse a una cantidad razonable de texto. Debe ser algo como esto:

Vuelva a la hoja de eventos. Necesitamos que el texto sea actualizado con la puntuación del jugador. En el evento every Tick añadido anteriormente, agrega la acción de texto - Text -> Set text

Utilizando el operador &, podemos convertir un número a texto y unirlo a otra cadena de texto. Así que en el texto, escriba: "Score:" & Score

La primera parte ("Score:") significa que el texto siempre se iniciará con esa frase: La segunda parte es el valor real de la variable global de puntuación. El & une a los dos en un trozo de texto. Ejecutar el juego, y disparar a algunos monstruos. Su puntuación se muestra, y se mantiene en el mismo lugar en la pantalla.

Page 31: 3.  tutorialguiabasico 2014

Centro de Estudios de Ingeniería de Software

LABORATORY OPENSOURCE SOLUTION

Toques finales Estamos a punto de terminar. Vamos a añadir algunos toques finales. En primer lugar, vamos a tener algunos monstruos apareciendo regularmente, de lo contrario una vez que has disparado a todos los monstruos no habría nada más que hacer. Vamos a crear un nuevo monstruo cada 3 segundos. Añadir un nuevo evento:

1. Condition: System -> Every X seconds -> 3 2. Action: System -> Create object -> Monster, layer 1, 1400 (for X), random(1024)

(for Y) 1400 es una coordenada X al lado de la orilla derecha de la vista, y al azar (1024) es una aleatoria Y coordina la altura de la vista. Por último, los Monstruos podrán matar al jugador.

1. Condition: Monster -> On collision with another object -> Player 2. Action: Player -> Destroy