Problema array

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
ZerA78
Membro super
Messaggi: 516
Iscritto il: 01/01/2013, 16:00
Specialità: Idee
Contatta:

Problema array

Messaggio da ZerA78 »

Salve ragazzi. Nell'oggetto tecnico all'evento Room start ho inserito questo codice
var col, row, tile, n, d; // variabili per riempire la grid
n=0; d= 0; T[n]= object_index; // valorizzazione delle variabili create
Tiles_Grid= ds_grid_create(Tiles_H,Tiles_W); //creazione della grid globale
for (col=0;col<Tiles_W;col+=1){
for (row=0;row<Tiles_H;row+=1){
tile= instance_position(x+(col*sprite_width)+(sprite_width/2)+(row*T[n].d),y-(row*50),Parent_campo);
n+=1;
T[n]= tile;
ds_grid_set(Tiles_Grid,col,row,tile);}}

mi da errore alla linea 6, cioe' tile= instance_position etcetc... variabile non definita.
Togliendo "+(row*T[n].d)" il gioco parte. Quindi credo che l'errore sia nell'array T[n]=. Dove sbaglio?
Forse bisogna inizializzare un array per forza con il numero 0 e non con n?

Ps: Tiles_Grid, Tiles_H e Tiles_W sono globalvar dichiarate nell'evento game start. e Tiles_H e W valorizzate nella sezione codice della room
Immagine

Avatar utente
cp94
Moderatore
Messaggi: 2789
Iscritto il: 04/07/2009, 19:18
Specialità: ddd
Località: Brescia
Contatta:

Re: Problema array

Messaggio da cp94 »

Allora, a parte che stai assegnando a T[0] un object_index e non un id di un istanza e quindi probabilmente l'errore sta quando vai a recuperare la variabile d da T[n].
Detto ciò ti sconsiglio si usare un array, ma di usare una ds_list.
Prova una cosa del genere:

Codice: Seleziona tutto

var col, row, tile, n, d; // variabili per riempire la grid
n = 0; 
d = 0; 

T = ds_list_create();
ds_list_add(T, id); // primo id dell istanza
Tiles_Grid = ds_grid_create(Tiles_H,Tiles_W); //creazione della grid globale

for (col=0; col < Tiles_W; col += 1){
    for (row=0; row < Tiles_H; row += 1){
        var instance_id;
        instance_id = ds_list_find_value(T, n);
        tile = instance_position(x + (col * sprite_width)+(sprite_width / 2)+(row * instance_id.d), y - (row*50), Parent_campo);
        n+=1;
        ds_list_add(T, tile);
        ds_grid_set(Tiles_Grid, col, row, tile);
    }
}
Games you should check out
Naemo
E T U S
Overgravity
Inside the Code

Immagine

ZerA78
Membro super
Messaggi: 516
Iscritto il: 01/01/2013, 16:00
Specialità: Idee
Contatta:

Re: Problema array

Messaggio da ZerA78 »

Infatti ci stavo riflettendo su object_index.. Grazie provero'!
Immagine

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 16 ospiti