Diskuze: Rozcvička 001 v GM ( Dědičnost )

Ostatní jazyky GameMaker GameMaker Rozcvička 001 v GM ( Dědičnost )

Avatar
TomBen
Redaktor
Avatar
TomBen:

Pro znalce Game Maker Language tu mám takovou menší rozcvičku.
Odpovědi mi pište pouze do PM!

Odměny za to nejsou, ale tady pod vláknem budu psát, kdo to měl dobře.
Je to zaměřené na dědičnost a je nutné uvést i důvod výsledku. Nejde
jen o to zkopírovat to do GM a spustit. :-)

Čemu bude rovna proměnná "object1.i" po provedení
následujícího kódu v eventu object1:CreateEvent a proč?

( v případě, že existují objekty object0 a object1 jako čerstvě založené
čili bez jakéhokoli dalšího kódu - pouze si v object1:DrawEvent necháme
vypsat "i" )

i=0;
object_set_parent(object1, object0);
object_event_add(object0,ev_step,0,'i=0;');
with( object0) { i=1; } i=2;
object_event_add(object0,ev_create,0,'i=3;');
event_inherited();
Editováno 28.4.2013 15:37
Odpovědět 28.4.2013 15:36
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
TomBen
Redaktor
Avatar
TomBen:

Tak už máme první správnou odpověď!
loapmail 28.4.2013 16:24

Nahoru Odpovědět  +1 28.4.2013 16:36
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
TomBen
Redaktor
Avatar
TomBen:

Druhý správný:
Appleman 4.5.2013 23:54 ( půlnoční kodér ) :-)

Nahoru Odpovědět  +1 5.5.2013 0:12
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
TomBen
Redaktor
Avatar
TomBen:

Rozcvička 001 uzavřena.

Správná odpověď: první snímek 3, ostatní snímky 0

i=0;                                            //hodnota je irelevantní - brzy bude změněna
object_set_parent(object1, object0);            //nastavení dědičnosti object0 je parent pro object1
object_event_add(object0,ev_step,0,'i=0;');     //do object0 přibude v eventu step i=0;
with( object0) { i=1; } i=2;                    //object0 získá vlastní lokální i, které má hodnotu 1 zatímco object1.i je nastaveno na 2
object_event_add(object0,ev_create,0,'i=3;');   //do object0 přibude v eventu create i=3;
event_inherited();                              //provede se create event z object0 ( protože teď už je jeho parentem ) a teď je tedy i=3;

//následuje event Draw kde se v prvním snímku vykreslí i jako 3
//pak se provede zděděný Step kde se i nastaví na 0
//v dalším Draw už se proto zobrazí i jako 0 a tak už zůstane pořád

Informace o event order
na http://wiki.yoyogames.com/…er_of_events

Nahoru Odpovědět  +1 13.5.2013 18:10
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ší. Tato diskuze byla označena moderátorem jako nekonstruktivní a myslíme si, že nemá pro veřejnost příliš vysokou hodnotu. Členy můžete samozřejmě stále oslovit soukromě a to formou zpráv nebo chatu.

Zobrazeno 4 zpráv z 4.