Stavo giochicchiando un po' con GM e mi sono messo a cercare la soluzione migliore per assegnare uno sprite animato ad un oggetto in base alla sua direzione. Il risultato è un codice corto, leggero e facile da capire.
Spero possa tornare utile a qualcuno, ma se avete delle migliorie per il codice o soluzioni alternative meglio ancora.
Cosa serve: 8 sprite animati per le otto direzioni principali: e,ne,n,no,o,so,s,se
Per questo esempio uso la direzione che va dall'oggetto al puntatore del mouse. Il codice è molto intuitivo, ma se volete qualche spiegazione sono qua.
Codice: Seleziona tutto
{
var dir_modif;
direction=point_direction(x,y,mouse_x,mouse_y);
dir_modif=direction+22.5;
if (direction>337.49) { dir_modif=0; }
switch(dir_modif div 45)
{
case 0: { sprite_index=spr_e; break; };
case 1: { sprite_index=spr_ne; break; };
case 2: { sprite_index=spr_n; break; };
case 3: { sprite_index=spr_nw; break; };
case 4: { sprite_index=spr_w; break; };
case 5: { sprite_index=spr_sw; break; };
case 6: { sprite_index=spr_s; break; };
case 7: { sprite_index=spr_se; break; };
}
}