Penso di sbagliare in qualche modo qualcosa! xD
Provo a ricapitolare tutto:
Ho 4 obj_ blocchi, ognuno impostato con uno sprite diverso.
Per evitare di fare copia e incolla di tutti i vari codici, visto che i blocchi si comportano tutti ugualmente, imposto 3 blocchi come parent di un un blocco.
Nell'evento collisione dell'obj_blocco con l'oggetto che effettua il danno imposto:
Codice: Seleziona tutto
hp-=1;
var list;
list=ds_list_create();
scr_dannoblocchi(id,list);
Creo lo script "scr_dannoblocchi":
Codice: Seleziona tutto
if (ds_list_find_index(argument1, argument0)!=-1)
{
//Collisione destra
hp-=1;
dx=collision_point(x+32,y,argument1,false,true);
if (image_index.argument1==image_index.dx)
{
scr_dannoblocchi(dx, argument0);
}
//Collisione sinistra
hp-=1;
sx=collision_point(x,y,argument1,false,true);
if (image_index.argument1==image_index.sx)
{
scr_dannoblocchi(sx, argument0);
}
//Collisione su
hp-=1;
su=collision_point(x,y-32,argument1,false,true);
if (image_index.argument1==image_index.su)
{
scr_dannoblocchi(su, argument0);
}
//Collisione giu
hp-=1;
giu=collision_point(x,y+32,argument1,false,true);
if (image_index.argument1==image_index.giu)
{
scr_dannoblocchi(giu, argument0);
}
}
Faccio partire il gioco e (stranamente) non ci sono errori, ma il danno non viene trasferito ai blocchi vicini dello stesso colore (in pratica si danneggia e distrugge solo il blocco colpito).