Diskuze: Funkce If
V předchozím kvízu, Online test znalostí GameMakeru, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí GameMakeru, jsme si ověřili nabyté zkušenosti z kurzu.
Dobrý den,
do objektu, který má začít vykonávat akci při dosažení onoho místa
(zadaných souřadnicích) vložíte do step eventu tuto akci, kde zadáte
souřadnice místa. Vhodné je pokud chcete tuto akci nastartovat jen jednou
nastavit poté proměnnou, která bude určovat zda se již akce provedla. A
pokud objekt dosáhne zadané pozice a akce se ještě neprovedla provedou se
zadané akce + nastaví se do proměnné, že se již akce provedla.
Přikládám ukázku:
http://dl.dropbox.com/…390b23a7.gmk
Pokud chcete jen obdelník, stačí tam dát složenou podmínku, něco jako
if ((player.x > 0) && (player.y > 0) && (player.x < 64) && (player.y < 64))
Ano, to je přesně to, co potřebuji - aby tato funkce kontrolovala, zda se objekt v daném obdelníku nachází, či ne.
Jenom si nevím rady, jak tedy takovýto zápis zprovoznit.
Lze to nějak zkombinovat s touto podmínkou?
if place_meeting(x,y,object0){
//akce
}
Jak zprovoznit? Úplně nechápu, co máte na mysli, prostě kód vložte do skriptu, je to obyčejná podmínka. Kombinovat samozřejmě jde (proč by nešla?) buď ji napište před váš kód nebo do ní přidejte další závorku s operátorem && (and, čili a zároveň musí platit), případně s || (nebo).
Pokud se ptáte na zprovoznění pomocí ikonek, dejte si 4x podmínku pod sebe (ikona Test variable), např. 1. bude vypadat takto:
object: player
variable: x
value: 0
operation: larger than
Pod to dáte další 3 z těch závorek výše, to jistě domyslíte. Nebo je tam obecná ikona Test expression a do ní můžete dát celý výraz bez slova if.
Mimochodem, zamozřejmě by šlo i udělat si sprite 64x64 pixelů, dát ho objektu, kterému nastavit visible na false a kontrolovat s ním kolizi.
S tím spritem jako objekt, u kterého by se kontrolovala kolize, to mě napadlo také. Ale já tento případ potřebuji na více místech v místnosti, a ty rozměry jsou vždy jiné, takže jsem nechtěl dělat na každé místo objekt zvlášť... Myslel jsem, že by to zbytečně brzdilo hru.
Jinak děkuji za odpovědi, zkusím to nějak dát do kupy, kdyžtak vím, kam se mohu obrátit..
Samozřejmě, že to je jedna z nejjednodušších možností, která se nabízí. Ale v mém případě (nebudu tu složitě vysvětlovat proč) jsem to takto udělat nemohl.
Nyní jsem už ale problém vyřešil, velice mi pomohla rada od Sdraca, a proto mu patří můj dík.
Zobrazeno 8 zpráv z 8.