Mi cospargo il capo di sale.
sono pronto a beccare tutti gli insulti che mi merito.
Credo di non essermi fatto capire con questo secondo problema.
Intendevo che i 5 oggetti creati in posizione diversa non vengono creati tramite collisione di più oggetti, ma cliccando su un solo oggetto.
Mentre invece mi sembra che questo codice abbia bisogno di qualche collisione.
Ho comunque riadattato il codice in questa maniera (codice che però non funziona evidentemente sbaglio qualcosa.)
in evento CREATE dell'oggetto che serve per creare gli oggetti random:
Codice: Seleziona tutto
global.posizione =4 // serve per determinare in che posizione andranno gli oggetti random
In left press event dell'oggetto che deve creare tutto ho inserito il codice suggeritomi e da me modificato:
(ho lasciato il nome degli oggetti originali che utilizzo senza scrivere oggettoA B o oggetto 1 o 2 )
Codice: Seleziona tutto
var ok, lista, daje;
ok = 0;
lista[0]=0; //oggetto, se 0 non esiste ancora
lista[1]=0; //oggetto2, ..
lista[2]=0; //oggetto3, ...
lista[3]=0; //oggetto4
lista[4]=0; //oggetto5
lista[5]=0; //oggetto6 non esiste ancora
lista[6]=0; //oggetto7, ..
lista[7]=0; //oggetto8, ...
lista[8]=0; //oggetto9
lista[9]=0; //oggetto10 //questa parte del codice è identica a quella scritta da doom13, ho aggiunto altri 5 oggetti visto che la scelta dei 5 oggetti è tra 10 oggetti
if (instance_exists(object66rebound2))
lista[0] = 1;
if (instance_exists(object66_3pts2))
lista[1] = 1;
if (instance_exists(object67assist2))
lista[2] = 1;
if (instance_exists(object68bench2))
lista[3] = 1;
if (instance_exists(object69clutch2))
lista[4] = 1;
if (instance_exists(object70defens2))
lista[5] = 1;
if (instance_exists(object71power2))
lista[6] = 1;
if (instance_exists(object72pride2))
lista[7] = 1;
if (instance_exists(object73stamina2))
lista[8] = 1;
if (instance_exists(object74steal2))
lista[9] = 1; // anche questa parte è identica a quella suggerita ho sempre aggiunto 5 oggetti. Gli oggetti tra parentesi sono ovviamente gli oggetti che devono essere creati
while(ok == 0)
{
daje = irandom_range(0, 9);
if(lista[daje] == 0)
{
ok = 1;
}
} // anche qui non ho cambiato niente se non irandom_range che è passato da (0,4) a (0,9) sempre perché ho aggiunto i 5 oggetti in più
if(daje == 0) and global.posizione==4 //Il cambiamento sostanziale è qui: ho sostituito !place_meeting con global.posizione che serve per vedere dove piazzare l'istanza.
{ instance_create(190, 310, object66rebound2); global.posizione -=1; } //se la condizione è corretta crea l'istanza e fa scalare di 1 la variaible della posizione. Ho usato questo procedimento per tute e 10 gli oggetti.
if (daje == 0) and global.posizione==3
{ instance_create(238, 345, object66rebound2); global.posizione -=1;}
if (daje == 0) and global.posizione==2
{ instance_create(190, 380, object66rebound2); global.posizione -=1;}
if (daje == 0) and global.posizione==1
{ instance_create(238, 415, object66rebound2); global.posizione -=1;}
if (daje == 0) and global.posizione==0
{ instance_create(190, 450, object66rebound2); global.posizione -=1;}
if (daje == 1) and global.posizione==4 //secondo oggetto
{ instance_create(190, 310, object66_3pts2); global.posizione -=1; }
if (daje == 1) and global.posizione==3
{ instance_create(238, 345, object66_3pts2); global.posizione -=1; }
if (daje == 1) and global.posizione==2
{ instance_create(190, 380, object66_3pts2); global.posizione -=1; }
if (daje == 1) and global.posizione==1
{ instance_create(238, 415, object66_3pts2); global.posizione -=1; }
if (daje == 1) and global.posizione==0
{ instance_create(190, 450, object66_3pts2); global.posizione -=1; }
if (daje == 2) and global.posizione==4 //terzo oggetto
{ instance_create(190, 310, object67assist2); global.posizione -=1; }
if (daje == 2) and global.posizione==3
{ instance_create(238, 345, object67assist2); global.posizione -=1; }
if (daje == 2) and global.posizione==2
{ instance_create(190, 380, object67assist2); global.posizione -=1; }
if (daje == 2) and global.posizione==1
{ instance_create(238, 415, object67assist2); global.posizione -=1; }
if (daje == 2) and global.posizione==0
{ instance_create(190, 450, object67assist2); global.posizione -=1; }
if (daje == 3) and global.posizione==4 //quarto oggetto
{ instance_create(190, 310, object68bench2); global.posizione -=1; }
if (daje == 3) and global.posizione==3
{ instance_create(238, 345, object68bench2); global.posizione -=1; }
if (daje == 3) and global.posizione==2
{ instance_create(190, 380, object68bench2); global.posizione -=1; }
if (daje == 3) and global.posizione==1
{ instance_create(238, 415, object68bench2); global.posizione -=1; }
if (daje == 3) and global.posizione==0
{ instance_create(190, 450, object68bench2); global.posizione -=1; }
if (daje == 4) and global.posizione==4 //quinto oggetto
{ instance_create(190, 310, object69clutch2); global.posizione -=1; }
if (daje == 4) and global.posizione==3
{ instance_create(238, 345, object69clutch2); global.posizione -=1; }
if (daje == 4) and global.posizione==2
{ instance_create(190, 380, object69clutch2); global.posizione -=1; }
if (daje == 4) and global.posizione==1
{ instance_create(238, 415, object69clutch2); global.posizione -=1; }
if (daje == 4) and global.posizione==0
{ instance_create(190, 450, object69clutch2); global.posizione -=1; }
if (daje == 5) and global.posizione==4 //sesto oggetto
{ instance_create(190, 310, object70defens2); global.posizione -=1; }
if (daje == 5) and global.posizione==3
{ instance_create(238, 345, object70defens2); global.posizione -=1; }
if (daje == 5) and global.posizione==2
{ instance_create(190, 380, object70defens2); global.posizione -=1; }
if (daje == 5) and global.posizione==1
{ instance_create(238, 415, object70defens2); global.posizione -=1; }
if (daje == 5) and global.posizione==0
{ instance_create(190, 450, object70defens2); global.posizione -=1; }
if (daje == 6) and global.posizione==4 //settimo oggetto
{ instance_create(190, 310, object71power2); global.posizione -=1; }
if (daje == 6) and global.posizione==3
{ instance_create(238, 345, object71power2); global.posizione -=1; }
if (daje == 6) and global.posizione==2
{ instance_create(190, 380, object71power2); global.posizione -=1; }
if (daje == 6) and global.posizione==1
{ instance_create(238, 415, object71power2); global.posizione -=1; }
if (daje == 6) and global.posizione==0
{ instance_create(190, 450, object71power2); global.posizione -=1; }
if (daje == 7) and global.posizione==4 //ottavo oggetto
{ instance_create(190, 310, object72pride2); global.posizione -=1; }
if (daje == 7) and global.posizione==3
{ instance_create(238, 345, object72pride2); global.posizione -=1; }
if (daje == 7) and global.posizione==2
{ instance_create(190, 380, object72pride2); global.posizione -=1; }
if (daje == 7) and global.posizione==1
{ instance_create(238, 415, object72pride2); global.posizione -=1; }
if (daje == 7) and global.posizione==0
{ instance_create(190, 450, object72pride2); global.posizione -=1; }
if (daje == 8) and global.posizione==4 //nono oggetto
{ instance_create(190, 310, object73stamina2); global.posizione -=1; }
if (daje == 8) and global.posizione==3
{ instance_create(238, 345, object73stamina2); global.posizione -=1; }
if (daje == 8) and global.posizione==2
{ instance_create(190, 380, object73stamina2); global.posizione -=1; }
if (daje == 8) and global.posizione==1
{ instance_create(238, 415, object73stamina2); global.posizione -=1; }
if (daje == 8) and global.posizione==0
{ instance_create(190, 450, object73stamina2); global.posizione -=1; }
if (daje == 9) and global.posizione==4 //decimo oggetto
{ instance_create(190, 310, object74steal2); global.posizione -=1; }
if (daje == 9) and global.posizione==3
{ instance_create(238, 345, object74steal2); global.posizione -=1; }
if (daje == 9) and global.posizione==2
{ instance_create(190, 380, object74steal2); global.posizione -=1; }
if (daje == 9) and global.posizione==1
{ instance_create(238, 415, object74steal2); global.posizione -=1; }
if (daje == 9) and global.posizione==0
{ instance_create(190, 450, object74steal2); global.posizione -=1; }
Il problema del codice è che crea 5 oggetti uguali per precisione si tratta dell'objectpride2 in tutte le posizioni.
Girovagando per internet ho trovato un codice che sembra adatto per quello che voglio fare però ve lo mostro in seguito per non fare confusione con il codice scritto qui sopra.