- Nombre del Creador: Markus
- Versión: :GM6:
- Descripción: El script que desarrollé lo llamo move_snap_iso(hsep, vsep), ya que cumple un rol similar a move_snap(hsep, vsep) con la diferencia que alinea a la instancia a una cuadrilla isométrica, en donde cada rombo tiene un ancho de hsep y un alto de vsep y posicionando la coordenada (x,y) en el centro del rombo.
- Código:
Citar
//move_snap_iso(hsnap, vsnap);
var W, H;
W = argument0 / 2;
H = argument1 / 2;
I = round(x / W);
J = round(y / H);
if ((I mod 2 = 0 && J mod 2 = 0) || (I mod 2 == 1 && J mod 2 == 1))
{
x = W * I;
y = H * J;
}
else if (I mod 2 = 0 && J mod 2 == 1)
{
if (x > W * I)
x = W * (I + 1);
else
x = W * (I - 1);
y = H * J;
}
else if (I mod 2 == 1 && J mod 2 = 0)
{
x = W * I;
if (y > H * J)
y = H * (J + 1);
else
y = H * (J - 1);
}
A petición de
Kakashigna:
Para saber si la instancia está ya posicionada en la cuadrilla:
Citar
//place_snapped_iso(hsnap, vsnap);
var X, Y, B;
X = x;
Y = y;
move_snap_iso(argument0, argument1);
B = (X == x && Y == y);
x = X;
y = Y;
return B;
- Descargas:
Archivo GML (http://marcohuaiquin.com/downloads/gamemaker/SnapIso.gml).
Ejemplo.
interesante script... deberias hacer tambien un place_snap(no recuerdo si se llama asi) de isometrico tambien seria util
bueno el script markus
salu2 ;D