Trabajando con Tiles en Tilemap: Contar cantidad de TIles

1

Statistiques

1,246 visites, 1,600 vues

Outils

Partager

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 30 May, 2018. Last updated 25 Feb, 2019

LA GRAN PREGUNTA: ¿ COMO SE QUE CANTIDAD DE TILES TENGO EN UN TILEMAP ?

Bueno esa es una pregunta que me hice y al buscar alguna referencia me di cuenta que no existe algún Tutorial o referencia con solución a esta pregunta (por lo menos San Google no la encontró).

Este problema se me presento al hacer un simple juego estilo ARCANOID y al querer saber cuantos TILES dibujé dentro de un objeto TILEMAP y aprovechar la caracteristica del objeto TILEMAP para hacer la ETAPAS, a lo cual me asalto la duda:

¿ Cuantos TILES dibujé para que al terminar de destruirlos el juego pase a la siguiente etapa ?.

Con varias etapas ya listas y con ninguna gana de empezar a contar los TILES uno por uno, quise que CONSTRUCT 2 haga el trabajo.

Debemos saber que no importa la mecánica que hagamos, esto servirá para cualquier TILEMAP que tengamos en nuestro juego.

1.- Deberemos Crear 2 objetos 1 TILEMAP y 1 Text. Nuestro Tilemap para el ejemplo se llamará "ETAPAS".

2.- Agregar la imagen con la que trabajaras dentro del Tilemap.

Ejemplo:

3.- Crear una Variable de Instancia dentro del Tilemap.

En este caso "CBLOQUE", llevara la cuenta de cuantos Tiles tiene activos el Tilemap correspondiente.

4.- Vamos a Iniciar creando un EVENTO ON START OF LAYOUT y un FOREACH puesta como SubEvento y con esto seleccionamos desde TILEMAP(0)....hasta el TILEMAP(n).

Donde la SENTENCIA ES 0 y el Orden: Ascendente.

5.- Creamos un SubEvento de Sistema FOR para contar de forma VERTICAL, aca es IMPORTANTISIMO saber el ALTO del Tile (no del TILEMAP), para el ejemplo se que el ALTO DE CADA TILE ES = 8. Para saber cuantos TILES caben de forma VERTICAL dividimos la ALTURA del TILEMAP por la ALTURA del TILE....con ETAPAS.Height/8.

Este FOR se llama "CONTVERT".

6.- Creamos un SubEvento de Sistema FOR para contar de forma HORIZONTAL, aca es IMPORTANTISIMO saber el ANCHO del Tile (no del TILEMAP), para el ejemplo se que el ANCHO DE CADA TILE ES = 16. Para saber cuantos TILES caben de forma HORIZONTAL dividimos el ANCHO del TILEMAP por el ANCHO del TILE....con ETAPAS.Width/16.

Este FOR se llama "CONTHOR".

UN RESUMEN DE LO QUE HASTA EL MOMENTO HEMOS HECHO...

7.- Aca empieza lo bueno...esta parte es la que hace la magia.

Nuevamente agregamos un SubEvento Sistema "COMPARE TWO VALUES", que se encargara de buscar con "TILEAT" del TILEMAP y dentro de los "LOOPINDEX": "CONTVERT" Y "CONTHOR" y comparar si esta vacio(Valor "-1") o lleno (distinto o mayor que "-1"), efectuando una pequeña variación podremos contar cualquier numero "INDICE" de TILE (Ejemplo: Solos los "0" o los "10", para saber cuantos hay de cada tipo).

Quedaria asi: ETAPAS.TileAt(loopindex("CONTHOR"), loopindex("CONTVERT"))

8.- Ya efectuadas todos estos EVENTOS, creamos una ACCION que sume 1 a la variable CBLOQUE, cuando encuentre un valor distinto a "-1" dentro de los espacios TILES del TILEMAP y que lo represente en un TEXT.

Y listo, ya sabemos cuantos TILES pusimos y podremos comparar cuantos se destruyeron o generar alguna acción en base a CBLOQUE.

Ejemplo Final:

Aca tenemos 1 TILEMAP copiado 1 vez y con distintos TILES tanto en INDICE como en cantidad.

Los Superponemos...

Y al Ejecutar...

Espero este Tutorial sea claro y facil de entender y por sobre todo les ayude.

  • 0 Comments

Want to leave a comment? Login or Register an account!