Haz un juego de Match 3 en Construct 2 The Basics

Bienvenido a una nueva serie de tutoriales en los que te mostraré cómo construir un juego de rompecabezas de Match-3, desde cero, en Construct 2. En esta primera parte, vamos a sentar las bases del juego y obtener la cuadrícula de rompecabezas básica. en la pantalla.


Introducción

Un juego de Match-3 es un rompecabezas basado en bloques donde mueves bloques en el área del juego para crear grupos de tres o más que comparten un atributo común (como un color o una forma). En la mayoría de los juegos de match-3, al jugador también se le otorgan bonificaciones por hacer coincidir más de tres bloques a la vez.

La mayoría de los juegos de rompecabezas de match-3 son de naturaleza competitiva, y el objetivo del jugador es generalmente obtener la puntuación más alta posible antes de que se agote el tiempo, o si se cumple alguna otra condición de pérdida. Algunos ejemplos de juegos de combinaciones incluyen Pokemon Puzzle League, Bejeweled y el reciente éxito Candy Crush Saga..


El juego que haremos

Decidí basar el juego de match-3 que haremos en Pokemon Puzzle League:


Haz clic y arrastra los bloques adyacentes para intercambiarlos. Trate de hacer coincidir tres en una fila o columna. No dejes que los bloques lleguen a la cima.!

Si nunca lo has jugado antes, PPL es un juego de combinaciones bastante simple en el que los bloques se elevan desde la parte inferior de la pantalla del juego y el jugador tiene que crear juegos para evitar que la pantalla se llene. Si los bloques llegan a la parte superior, el jugador pierde y se ve obligado a comenzar de nuevo..

Aquí hay una demostración del juego en el que trabajaremos durante toda la serie:



En este primer artículo, nos centraremos en sentar las bases de nuestro juego. Este artículo se centrará específicamente en configurar el proyecto y generar una cuadrícula de bloques al azar para el jugador.


Antes de que comencemos

Antes de comenzar con este tutorial, asegúrese de instalar la versión más reciente de Construct 2 (C2). Cuando construí la versión original del juego, estaba usando la versión 122, así que siempre que tengas una versión más nueva, deberías estar bien. Además, si nunca ha usado C2, debería consultar esta guía que detalla los conceptos básicos de cómo usar C2 y cómo crear la mayoría de los tipos de objetos..

También debe descargar el paquete de gráficos que he creado para este tutorial. Aunque, por supuesto, puedes usar los gráficos que quieras, daré un posicionamiento específico para muchos elementos en estos tutoriales, y esas posiciones se basan en las imágenes que utilicé. Si utiliza otros gráficos, deberá tener en cuenta las diferencias de tamaño en esos gráficos al seguir estos tutoriales..

Una vez que tenga todo configurado y tenga un buen conocimiento de C2, siga leyendo!


Configuración del proyecto

Antes de que construyamos todo el juego, necesitamos configurar el proyecto en sí. Cargue C2 y siga estos pasos:

  1. Iniciar un nuevo proyecto.
  2. En el Propiedades del proyecto, establecer el tamaño de la ventana a 600x600.
  3. Rellene el Nombre y Autor campos.
  4. Ve a la Capas Panel y añadir dos nuevas capas..
  5. Renombra la capa más baja a Fondo, la capa intermedia para Bloques, y la capa superior a Campo de juego.
  6. Entrar en Diseño 1 e inserte un Fondo de azulejos objeto.
    1. Para el Fondo de azulejos objeto, uso Imágenes de BG / StandardBGTile.bmp del paquete de gráficos.
    2. Ir a las propiedades del objeto y renombrarlo. GameBG.
    3. Establecer el objeto Capa a Fondo.
    4. Establecer el objeto tamaño ser 650, 650.
    5. Coloque el objeto de manera que llene toda el área visible del diseño y se vea similar a esto:
  7. Ahora crea otro Fondo de azulejos objeto.
    1. Usa la imagen Imágenes del campo de juego / GameFieldBorder.bmp.
    2. Nombra el objeto GameFieldBorder.
    3. Selecciona el Posición a 9, -12.
    4. Selecciona el tamaño a 16, 732.
    5. Selecciona el Capa a Campo de juego.
  8. Crear una copia de la  GameFieldBorder objeto.
    1. Selecciona el Posición de la copia a  368, -12 .
  9. A continuación, crea un Duende objeto.
    1. Usa la imagen Imágenes del campo de juego / GameFieldBottom.png.
    2. Nombralo GameFieldBottom.
    3. Selecciona el Posición a 197, 625.
    4. Selecciona el tamaño a 344, 150.
    5. Selecciona el Capa a Campo de juego.
  10. Haga una copia de la GameFieldBottom objeto.
    1. Selecciona el Posición a 196, -30.
    2. Selecciona el Ángulo a 180.

Lo último que debemos hacer es crear un fondo para el área real en la que aparecerán los bloques..

  1. Crear un nuevo Duende objeto.
    1. Ve a la Selector de color y establecer el rojo, Verde, y Azul a 0, y el Alfa a 200.
    2. Utilizar el Bote de pintura Para llenar toda la imagen con este color..
    3. Cerrar el editor de animacion.
    4. Selecciona el tamaño a 359, 570.
    5. Selecciona el Posición a 195,294.
    6. Selecciona el Capa a Fondo

El campo de juego ya está completo, pero todavía tenemos que hacer un Sprite que pueda usarse para los Bloques.. 

  1. Hacer una nueva Duende objeto.
    1. Con el editor de animación abierto, haga clic derecho en el Cuadros de animación ventana y elija "Importar marcos ... ".
    2. Seleccione cada imagen en el Bloques carpeta del paquete de gráficos, e importarlos todos.
    3. Elimine el fotograma 0, para que la imagen de bloque gris sea el fotograma 0 y no haya un fotograma en blanco..
    4. Compruebe que sus cuadros estén en el mismo orden que mis bloques en la imagen a continuación:

Antes de seguir adelante, me gustaría explicar las imágenes de bloque. El bloque gris está ahí para representar un bloque "inactivo", que se implementará en un próximo tutorial. Las imágenes restantes se agrupan en grupos de tres para cada bloque: el primer cuadro es para cuando no se usa el bloque, el segundo es para cuando el jugador está manipulando el bloque y el tercero para cuando el bloque se combina en una grupo.

Finalmente, tome el bloque que hemos hecho y colóquelo en algún lugar del diseño que evite que el jugador lo vea durante un juego real. Además, establece el tamaño del bloque a 40, 40.

Ahora hemos traído todas las imágenes que necesitamos para este artículo y podemos continuar haciendo que el juego funcione..


Generando una cuadrícula de bloques aleatorios

En la versión final del juego, los bloques se moverán hacia arriba en todo momento, y los nuevos bloques se moverán hacia la pantalla desde la parte inferior. Por ahora, sin embargo, necesitamos que funcionen los mecanismos básicos, por lo que solo vamos a generar una cuadrícula de bloques de 8x8 y dejarlo así..

Ir Hoja de evento 1 y agregue estas variables globales para definir la posición inicial de desove de los Bloques:

 Variable global: valor SPAWNX = 49 constante = verdadero Variable global: valor SPAWNY = 526 constante = verdadero

También necesitamos hacer otra cosa antes de realizar el primer evento: necesitamos crear una variable de instancia para el Bloque que le diga al bloque de qué color es.

Cree una nueva variable de instancia para el objeto Bloque, nómbrela Color y no cambies ninguna otra configuración.

Ahora haremos nuestro primer evento. El objetivo de este evento es crear una cuadrícula estática de bloques para fines de prueba:

 Evento: Condición: Sistema> Al inicio del diseño Condición: Sistema> Para Nombre: "Y" Índice de inicio = 0 Fin de índice = 7 Sub-Evento: Sistema> Para Nombre: "X" Índice de inicio = 0 Fin de índice = 7 Acción: Sistema> Crear objeto de objeto: Bloque X = (SPAWNX + (loopIndex ("X")) * (Block.Width + 2)) Y = (SPAWNY - (loopIndex ("Y")) * (Block.Width + 2) )

Ambas fórmulas dicen básicamente lo mismo. Primero, agregamos 2 al ancho del bloque para que cada bloque tenga un búfer de 2px entre él y sus vecinos para evitar falsos positivos cuando se usa la detección de colisiones. Luego, multiplicamos ese número por el índice actual en el bucle for, y lo agregamos a la posición X o Y inicial. Además, estamos restando del valor Y porque en C2 el punto 0 en el eje Y está en la parte superior de la pantalla del juego, por lo que al disminuir el valor de la posición Y, estamos poniendo un objeto más cerca de la parte superior de la pantalla..

Entonces, ¿qué hace esto? Esto significa que a medida que los bucles X e Y se repiten, y los valores de X e Y aumentan, la posición en la que coloca cada bloque cambiará, lo que finalmente resultará en una cuadrícula cuadrada:

Si ejecuta el juego en este punto, tendrá una cuadrícula de bloques, pero, en lugar de ser de colores diferentes, todos ellos solo recorrerán cada imagen de bloque en sucesión..

Para arreglar esto necesitamos hacer dos cosas..

Primero, debemos asignar a cada bloque un valor de color utilizando la variable de instancia que creamos anteriormente. Para hacer esto, agrega otra acción:

 Acción: Bloque> Establecer valor Color = piso (Aleatorio (1,7))

Esto asignará al bloque un valor de color aleatorio de 1 a 6. (La razón por la que no es de 1 a 7 se explica en la explicación de la Aleatorio función.)

Tu función ahora debería verse así:

También necesitamos agregar un sistema que cambie la imagen de un bloque en función de su valor. Para hacer esto, comience agregando una nueva Variable de Instancia al objeto Bloque:

 Variable de instancia para el nombre del bloque: "IsMatched" Tipo: Valor inicial booleano = falso

Ahora, agregue un nuevo evento:

 Evento: Sistema> Cada acción Tick: Bloquear> Establecer valor de cuadro = (Block.Color-1) * 3 + 1

Esta fórmula primero resta 1 del valor de color del bloque para tener en cuenta el hecho de que los valores comienzan en 1 en lugar de 0. Luego, multiplica ese número por 3 para tener en cuenta el hecho de que cada bloque tiene 3 cuadros de animación. Finalmente, agrega 1 a ese valor ya que la imagen estándar de un bloque es la primera imagen en el conjunto de imágenes..

Veamos un ejemplo rápido con un bloque que tiene un valor de color de 4, para ver qué cuadro de animación utilizará. Primero resta 1 del valor de color para obtener 3. Luego multiplica ese número por 3 para hacer 9. Finalmente, agrega 1 a ese valor para hacer 10. Esto significa que un Bloque con un valor de color de 4 usará el cuadro 10 como su marco de animación predeterminado, y será un bloque púrpura / cuadrado.

Si ejecutas tu juego ahora, verás que cada bloque es de un color diferente, pero aún no hemos implementado animaciones para cuando el mouse se desplaza sobre el bloque o para cuando coincide. Esto se tratará en el siguiente tutorial, junto con cómo intercambiar dos bloques vecinos.

Aquí hay una pequeña demostración de cómo debería verse el juego en este punto (toma la fuente aquí):

Haz click para cargar la demo..

Si desea continuar trabajando por su cuenta, comience a cambiar el cuadro de animación del Bloque en función del evento "Mouse> El cursor está sobre el objeto". También puedes comenzar a utilizar el comportamiento "Arrastrar y soltar" para manipular el Bloque y considerar cómo determinar qué intenta hacer el jugador con el Bloque cuando comienzan a arrastrarlo o cuándo lo sueltan..


Conclusión

Gracias por leer esta parte del tutorial, donde establecimos las bases básicas para nuestro juego de Match-3. ¡Vuelve pronto para la siguiente parte de la serie! Puede mantenerse al día a través de Facebook, Twitter, Google+, RSS o correo electrónico..