IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
rosina.jakub
Člen
Avatar
rosina.jakub:12.10.2015 20:00

Č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
Tvůrce
Avatar
Odpovídá na rosina.jakub
TomBen:13.10.2015 7:05
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:13.10.2015 17:23

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
Tvůrce
Avatar
Odpovídá na rosina.jakub
TomBen:14.10.2015 11:57

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:14.10.2015 14:50

len ja potrebujem vytvoriť 3 rozdielne objekty.

 
Nahoru Odpovědět
14.10.2015 14:50
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na rosina.jakub
TomBen:14.10.2015 20:54

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:15.10.2015 16:56
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
Tvůrce
Avatar
Odpovídá na rosina.jakub
TomBen:15.10.2015 20:06

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í
+2,50 Kč
Ř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.