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
Někdo Někde
Neregistrovaný
Avatar
Někdo Někde:11.1.2014 12:15

Dobrý den, chci se zeptat, jestli a jak se dá v GML zjistit, jestli nějaká proměnná existuje.

 
Odpovědět
11.1.2014 12:15
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na
TomBen:11.1.2014 12:57

Záleží na verzi. GM 8.x má na to funkce variable_(local/glo­bal)_exists(), ale GM Studio už je nepoužívá a tak v něm nejspíš existenci proměnných zjišťovat nelze. Pokud to nutně potřebuješ, tak si založ zvlášť objekt na tu jedinou proměnnou a zjišťuj existenci objektu. Ale většinou se tomu dá vyhnout.

Editováno 11.1.2014 12:57
Nahoru Odpovědět
11.1.2014 12: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
David Hartinger
Vlastník
Avatar
Odpovídá na
David Hartinger:11.1.2014 13:17

Nenapadá mě k čemu je to dobré, pokud to potřebuješ, tak dost možná děláš nějakou hloupost.

Nahoru Odpovědět
11.1.2014 13:17
New kid back on the block with a R.I.P
Avatar
TomBen
Tvůrce
Avatar
Odpovídá na David Hartinger
TomBen:11.1.2014 22:32

V osmičce GM se to hodilo, když použiješ instanční creation code ve fázi designu a nechceš řešit, kterou proměnnou už jsi inicializoval ručně a kterou ne. Např. položíš do místnosti pět instancí objektu enemy_plane a třem z nich přidělíš ručně v creation code třeba ammo_power=28 pak 30 a 42. Pak chceš aby default byl 18. Kdybys do creation eventu dal prostě ammo_power=18, přepsaly by se ti i ty ručně editovatelné hodnoty z creation code. Tak napíšeš podmmínku, že pokud neexistuje ammo_power, má se založit a naplnit. Je to efektivní postup když často měníš hodnoty něčeho a balancuješ hratelnost. Tj. když nevíš předem správné hodnoty a nebudeš je vědět ještě třeba ani v beta verzi. Dá se to určitě udělat i jinak, ale takhle je to nejrychlejší za nejméně práce.

PS: v GMS to nejde i proto, že se creation code spouští až po creation eventu ( prostě pakárna )

Editováno 11.1.2014 22:35
Nahoru Odpovědět
11.1.2014 22:32
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 4 zpráv z 4.