Buenas, tengo un problema al que le estoy dando vueltas y no logro que funcione, he leído las partes del movimiento de estancias que viene en el manual y he mirado ejemplos pero no he encontrado un ejemplo que me ayude. A ver si alguien sabe como puedo hacerlo.

El asunto es que tengo un tablero con casillas( como uno de ajedrez) y fuera del tablero tengo un botón. lo que intento es que el personaje situado en una casilla del tablero se mueva a otra casilla contigua del mismo color al hacer click en el boton que hay fuera del tablero.

¿Cómo puedo conectar el objeto botón con el del personaje? ¿Alguien me puede dar alguna idea de cómo encarar este problema?

Gracias.


#1 Marzo 04, 2015, 06:10:47 PM Ultima modificación: Marzo 04, 2015, 06:55:06 PM por penumbra
Cita de: Strod en Marzo 04, 2015, 06:03:49 PM
¿Cómo puedo conectar el objeto botón con el del personaje? ¿Alguien me puede dar alguna idea de cómo encarar este problema?

Hay dos maneras de hacerlo. Una, mediante el método punto: nombre_del_objeto_o_instancia.variable_de_ese_objeto_o_instancia

Otra, mediante la construcción with: with (objeto_o_instancia) { acciones }

http://www.inventati.org/estupidezartificial/manual.html
La primera se explica en la introducción a GML, parte 1, y la segunda, en la Introducción a GML, parte V.

Ejemplo (usando with). En el botón:
[gml]with(obj_jugador)
{
      x += 64        //Mueve al jugador a la derecha.
}[/gml]

Adicionalmente, se debe crear un sistema para identificar cada casilla y/o asociarle a cada casilla una posición. Esto se puede hacer de distintas maneras, mediante arreglos, listas, mapas, grids, etc. Otra es mediante el uso de las funciones snapped (creo que esta es la más sencilla). En la sección de ejemplos, aquí en el foro, ver el ejemplo de "movimiento en una grid" o "movimiento tipo pokemon"(no recuerdo el nombre exacto, pero es un ejemplo sencillo y claro de cómo moverse en intervalos fijos). Otra sería crear una rejilla mediante  mp_grid.

Muchas gracias Penumbra, veré de hacerlo del modo que me has comentado.