Noviembre 22, 2009, 11:45:00 PM Ultima modificación: Julio 20, 2018, 04:38:09 PM por Markus

  • 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;



Vota nuestro proyecto en Steam Greenlight:

Estudios Naicura Ltda

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

Orgulloso veterano de CGM
El poder de hacer un buen juego esta en tus manos.