Hola a todos, a ver si alguien me puede ayudar con el siguiente problema que no sé como resolverlo.
Imaginad un tablero de ajedrez, con sus casillas blancas y negras.
Lo que quiero hacer es cambiar el color de las casillas usando el toque con el dedo (en una pantalla táctil).
Por ejemplo, si toco con el dedo una casilla negra y (sin dejar de tocar la pantalla) arrastro el dedo a una casilla blanca contigua quiero que la casilla blanca se vuelva negra cuando deje de tocar la pantalla.
Alguien sabe más o menos el algoritmo a utilizar y con qué funciones.
Muchas gracias por leerme.
Saludos.
se me ocurre que podes guardar el color en una variable.
obtienes la instancia con instance_position(); en las coordenadas del mouse cuando presionas:
cuadro = instance_position(mouse_x, mouse_y, o_casilla)
color = cuadro.color;
Luego cuando sueltas, verificas que sea un cuadro diferente
cuadro_final = instance_position(mouse_x, mouse_y, o_casilla)
if (cuadro_final != self.id)
micolor = color
y bueno para verificar si es contiguo, bastaria con usar una vez mas instance_position para ver de que lado esta, serian 4 verificaciones
Creas 3 objetos, bloc_negro , bloc_blanco , control (el objeto control es solo para poner una variable global, se puede poner en el Creation code del room pero yo lo prefiero asi):
objeto control
[gml]
global.color=""
[/gml]
objeto bloc_negro
[gml]
///EVENTO RATON - Mouse Pressed
global.color="negro"
///EVENTO RATON - Mouse Released
if global.color="blanco"
{
instance_destroy()
instance_create(x,y,bloc_blanco)
}
[/gml]
EL objeto bloc_blanco es igual pero cambias valores blanco por negro y viceversa.
Funciona asi, al presionar sobre un objeto se toma el "color" de ese objeto, y al soltar el boton de raton sobre otra pieza, se ve si el color es igual o diferente, si es diferente se cambia de objeto (instance_destroy, instance_create)
@Ashe de Freljord y @3dgeminis, muchas gracias por vuestra ayuda, mañana probaré ambos métodos y comentaré como me han ido.
Saludos.
Bueno, qué decir, perfecto!
Acabo de hacerlo y funciona tal y como quería. De la aportación de @3dgeminis he conseguido hacer funcionar la idea central de lo que buscaba, y de @Ashe de Freljord que funcione con los cuadros contiguos y no con los que están en posición diagonal.
Muchas gracias de nuevo a ambos. :)