Avatar
rosina.jakub
Člen
Avatar
rosina.jakub:

Čaute všetci!
Potrebujem vytvoriť 3 objekty. Vždy na inej pozícií ( aby sa menili). X súradnica je vždy 352 a Y je 160, 260, 360. Teraz potrebujem nastaviť náhodne vytvorenie objektov na týchto pozíciach. Skúšal som niečo ako instance_crea­te(352, choose(160,260,3­60), objekt1)
instance_crea­te(352, choose(160,260,3­60), objekt2)
instance_crea­te(352, choose(160,260,3­60), objekt3)
no v tomto kóde je chyba že ak sa na pozícií 160 vytvorí objekt1 tak sa tam môže vytvoriť objekt2 alebo objekt3.
Dúfam, že som to vysvetlil dosť jasne :)
Poradíte mi s tým?

 
Odpovědět 12.10.2015 20:00
Avatar
TomBen
Redaktor
Avatar
Odpovídá na rosina.jakub
TomBen:
xx=352;

//dočasný list hodnot
var lokace=ds_list_create();
//přidání pozic
ds_list_add(lokace,160);
ds_list_add(lokace,260);
ds_list_add(lokace,360);
//... atd

ds_list_shuffle(lokace); //zamíchat

//vytváření instancí
pocet_vytvoreni=ds_list_size(lokace)-1; //nebo nějaké nižší číslo
for(i=0;i<pocet_vytvoreni;i++) instance_create(xx,lokace[|i],object);
Nahoru Odpovědět 13.10.2015 7:05
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
rosina.jakub
Člen
Avatar
Odpovídá na TomBen
rosina.jakub:

Nefunguje resp. keď dám vytvoriť 2 objekty vytvorí 4 na 160 aj 260

 
Nahoru Odpovědět 13.10.2015 17:23
Avatar
TomBen
Redaktor
Avatar
Odpovídá na rosina.jakub
TomBen:

Kód funguje správně. Můžeš se přesvědčit:
https://www.dropbox.com/…Instance.zip?dl=0

Pokud ti to místo dvou dělá čtyři, tak spouštíš kód dvakrát.

Nahoru Odpovědět 14.10.2015 11:57
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
rosina.jakub
Člen
Avatar
Odpovídá na TomBen
rosina.jakub:

len ja potrebujem vytvoriť 3 rozdielne objekty.

 
Nahoru Odpovědět 14.10.2015 14:50
Avatar
TomBen
Redaktor
Avatar
Odpovídá na rosina.jakub
TomBen:

No a? Rozepiš přece ten cyklus na tři instance_create.

Nahoru Odpovědět 14.10.2015 20:54
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Avatar
rosina.jakub
Člen
Avatar
Odpovídá na TomBen
rosina.jakub:
for(i=0;i<pocet_vytvoreni;i++) instance_create(xx,lokace[|i],object1);
instance_create(xx,lokace[|i],object2);
instance_create(xx,lokace[|i],object3);

takto myslíš?

 
Nahoru Odpovědět 15.10.2015 16:56
Avatar
TomBen
Redaktor
Avatar
Odpovídá na rosina.jakub
TomBen:

Měl bys na sobě začít trochu makat. Cyklus for se programátoři učí v jeslích. :-)

Z výše uvedeného kódu ponecháš vše, co je nad řádkem:

ds_list_shuffle(lokace); //a ten samosebou taky necháš

Zbytek nahradíš tímto:

instance_create(xx,lokace[|1],object1);
instance_create(xx,lokace[|2],object2);
instance_create(xx,lokace[|3],object3);
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 15.10.2015 20:06
Za posledních 200 miliónů let se nic zvláštního nestalo, akorát dinosauři vymřeli a opice se naučily programovat.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.