Pagina 1 di 1

Problema array

Inviato: 26/02/2018, 8:54
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

Re: Problema array

Inviato: 26/02/2018, 11:56
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);
    }
}

Re: Problema array

Inviato: 26/02/2018, 12:28
da ZerA78
Infatti ci stavo riflettendo su object_index.. Grazie provero'!