Solid Snake ha scritto:1) Come ti ho già detto il modo migliore è di inserire le instanze in una ds_grid che non è nient'altro che un array bidimensionale. Se vuoi proprio farlo con le funzioni senza ds_grid allora puoi usare collision_point che restituisce l'id dell'instanza con cui collide, e dato che a te ti serve proprio l'id è ottima.
Usando una ds_grid come funzionerebbe la cosa?
Innanzitutto devo crearmi un obj che mi crea una griglia utilizzando "ds_grid_create" giusto?
Ad esempio: global.griglia=ds_grid_create(10,20);
(a proposito.. La griglia mi viene creata a partire dall'origine dell'obj che contiene il comando "ds_grid_create"?Se la mia area di gioco si trova solo al centro dello schermo posso fare in modo che la griglia sia creata solo li o mi conviene crearla ugualmente a tutto schermo?)
Dopodiché ogni volta un oggetto si ferma all'interno di una cella devo aggiungere all'interno di essa la sua posizione con "ds_grid_add"? Ad esempio: ds_grid_add(global.griglia,obj_bloccoblu.x,obj_bloccoblu.y,1); // Valore 1 = blocchi blu
Adesso però ogni volta che un blocco si sposta o viene distrutto devo aggiornare la griglia giusto? Però non conosco le funzioni per fare questo..
Scusate se sono così impedito con le griglie ma è la prima volta che sto cercando di utilizzarle...
Solid Snake ha scritto:2) Dipende da come tratti image_index... Se il colore cambia in base a image_index allora puoi usarlo.
Ho cerato diversi oggetti, ognuno con un proprio sprite, quindi hai ragione tu, l'idea dell'image_index non può funzionare visto che avrebbero tutti la stessa (cioè 0). Che altro metodo potrei usare per far riconoscere il colore dell'instanza? Una variabile potrebbe andare (anche se non so se sia la soluzione migliore)?
