ds_list: scorrere all'inverso le voci

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
Avatar utente
sfigatto
Membro
Messaggi: 227
Iscritto il: 18/04/2014, 23:20
Uso: GM:Studio 1.4 Pro
Contatta:

ds_list: scorrere all'inverso le voci

Messaggio da sfigatto »

Salve,
Mi rendo conto che il problema è stupido, ma non riesco a richiamare da una ds_list oggetti già richiamati.
Mi spiego meglio.

creo una ds lit
global.lista=ds_list_create();

ds_list_add(global.lista,allarme)
ds_list_add(global.lista,straccio)
ds_list_add(global.lista,mattone)
ds_list_add(global.lista,balena)
ds_list_add(global.lista,arco)
ds_list_add(global.lista,colori)
ds_list_add(global.lista,parrucca)
Gli oggetti della ds list appaiono dentro una finestrella ed è possibile scorrerli tramite 2 frecce.
Se scorro gli oggetti in avanti ,ossia partendo da allarme per poi andar a straccio, mattone, balena etc etc non ho problemi. Se invece cerco di scorrere gli oggetti all'indietro , ossia partendo da un oggetto a caso come balena per andare a mattone, straccio ,allarme non succede nulla.

il codice usato nelle frecce è il seguente:
in create
global.k=0;

if x<=1660
{
image_xscale=-1; //serve per girare lo sprite di una delle 2 frecce nel verso opposto all'altra
alarm[0]=5 //richiama la ds_list
}
in alarm[0]
instance_create(1652,1264,ds_list_find_value(global.lista,global.k));
global.k++
in left released
if x<=1660 //se la freccia è a sinistra , fa scorrere gli oggetti all'indietro
{
if global.k !=0 {
instance_create(1652,1264,ds_list_find_value(global.lista,global.k));
global.k-- }
}
else // se la freccia è a destra , fa scorrere gli oggetti in avanti
{
instance_create(1652,1264,ds_list_find_value(global.lista,global.k));
global.k++
}

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

Re: ds_list: scorrere all'inverso le voci

Messaggio da ZerA78 »

e' l'evento che hai sbagliato. Sia l'azione per la destra che per la sinistra sono entrambi in left released. poi.. in quale object hai messo tutto questo?
Immagine

Avatar utente
sfigatto
Membro
Messaggi: 227
Iscritto il: 18/04/2014, 23:20
Uso: GM:Studio 1.4 Pro
Contatta:

Re: ds_list: scorrere all'inverso le voci

Messaggio da sfigatto »

ZerA78 ha scritto:e' l'evento che hai sbagliato. Sia l'azione per la destra che per la sinistra sono entrambi in left released. poi.. in quale object hai messo tutto questo?
l'event left released è nell'oggetto freccia.
Le frecce nel gioco sono 2 . Una manda avanti una manda indietro.
L'oggetto è lo stesso, ma essendo le frecce in posizioni diverse quel "if x<=1660" ne cambia il funzionamento del left pressed.

Ho comunque provato a fare due frecce divere e modificare conseguentemente il codice , ma non funziona.

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

Re: ds_list: scorrere all'inverso le voci

Messaggio da ZerA78 »

Infatti non capivo perche' usi global.k o global.lista. Cosi scrivendo significa che dell'oggetto global ne richiami, da un altro oggetto, la variabile k e la variabile lista.
GM raccomanda l'uso dell' underscore per dividere due parole. Poi il left pressed non lo menzioni. le azioni sono tutte in left released
Immagine

Avatar utente
sfigatto
Membro
Messaggi: 227
Iscritto il: 18/04/2014, 23:20
Uso: GM:Studio 1.4 Pro
Contatta:

Re: ds_list: scorrere all'inverso le voci

Messaggio da sfigatto »

Chiedo scusa, le prossime volte cercherò di essere più preciso :)

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

Re: ds_list: scorrere all'inverso le voci

Messaggio da ZerA78 »

cmq aggiungi anche il codice che distrugge l'istanza precedente..altrimenti riempi troppo la memoria. cosi facendo crei oggetti a ripetizione andando a destra e sinistra e non vorrei che fosse proprio un problema di depht.. gli oggetti si creano sotto quello precedente e non li vedi
Immagine

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 21 ospiti