Avatar
Někdo Někde
Neregistrovaný
Avatar
Někdo Někde:

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
Redaktor
Avatar
Odpovídá na Někdo Někde
TomBen:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na Někdo Někde
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
TomBen
Redaktor
Avatar
Odpovídá na David Čápka
TomBen:

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.