miércoles, 24 de agosto de 2016

Tutorial Rpg maker 2003 - Eventos, colisiones y sistemas

Ésto que suena a asignatura, son algunas de las cosas como trabaja el Rpg Maker con
los eventos, y como siempre digo, parte de estas cosas pueden valer para cosas generales en desarrollo de juegos.

Lo que voy a explicar es cómo guardar en variables las coordenadas
del personaje, (entorno), y sus posibles usos.



En el apartado de variables,
en Event, Player.

Hay varias cosas que se pueden
guardar en una variable, en este caso, como está marcado el personaje:

  • Map ID como el nombre dice, guarda al número del mapa, Map0001 por ejemplo, guardaría 1.
  • X Coordinate guarda la posición el bloque X en el que estás.
    Es decir, el maker cuenta desde el bloque X0 en horizontal, y cada cuadro es un número.
  • Y Coordinate es lo mismo pero en vertical, guarda el número de cuadro del personaje en la variable (arriba del todo=0 mas abajo +1 por cuadro).
  • Direction. La posición a donde mira el personaje, os ahorro tener que mirarlo.
    2 - abajo, 8 - arriba, 6 - derecha, 4 izquierda.
  •  Screen X, ésto es diferente de lo de arriba, no guarda el "cuadro" de 1 en 1 sino que
    va por píxeles, es decir, si te mueves un cuadro a la derecha, la variable será +16px que
    es el tamaño de cada cuadro/tile.
  •  Screen Y, lo mismo para la altura, siguiendo el patron de Y coordinate, aqui cada cuadro más abajo es +16
Ahora sabiendo ésto, puedo guardar las coordenadas del personaje y lo que hay a su alrededor,
para por ejemplo hacer un sistema de batalla de disparos, o lanzar flechas que detecten paredes.
Pues sí, además tambien hay para guardar ID' de evento, y ID's de terreno.

Ahora voy al meollo con este gráfico




Este "tochaco" que lo he copiado del Lufia porque paso de volver a escribirlo,
guarda en 28 variables lo que hay alrededor del personaje, no guarda las esquinas porque no me hace falta.

Además de esto también en base a esas posiciones, otras 28 variables que leen el terreno de esos tiles.

Si en un cuadro no hay evento la variable dará valor 0

Si el terreno no está definido dará 1 que es el terreno por defecto de todos los tiles.


Pondré algunos ejemplos que pueden valer con esto teniendolo en eventos comunes guardando todas las posiciones cercanas + las cosas más basicas que comenté arriba.

Ejemplo 1: Supongamos que
lanzamos una flecha a donde hay un interruptor, podemos poner un proceso que
compruebe si sobre el interruptor en base a su ID o posición o junto al interruptor
choca la flecha que es otro evento con otra ID.

Ejemplo 2: Creo que ya comenté antes esto con lo de hacer el puente que tenia animación según andabas.
pues se puede hacer que
los tiles que forman el puente cambien según la distancia del héroe que está en variables.

Ejemplo 3: Teniendo guardadas suficiente distancia, podemos hacer que haya enemigos que nos detecten si estamos cerca.
Cosa que tambien se puede de otra forma dinámica, sumando X-Y del heroe, X-Y del enemigo,
restandolos, si el valor es bajo es porque está cerca de nosotros!

No hay comentarios:

Publicar un comentario

Los comentarios deben pasar una moderación.