NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Micinaua
Člen
Avatar
Micinaua:11.12.2011 14:43

Dobrý den,
nevím si rady s tímto problémem:

Potřeboval bych, aby daný objekt začal dělat nějakou činnost ve chvíli, kdy se jiný objekt (např. hrdina) nachází v nějaké oblasti (např. od x:0 y:0, do x:64 y:64).

Funkci "If there is an object at a position" znám, ale nevím jak ji jinak použít, než jenom na jedno konkrétní místo v místnosti...

Předem děkuji za Vaše názory a odpovědi. ;)

 
Odpovědět
11.12.2011 14:43
Avatar
David Jančík
Vlastník
Avatar
Odpovídá na Micinaua
David Jančík:11.12.2011 15:24

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

Nahoru Odpovědět
11.12.2011 15:24
Zapomeň, že je to nemožné a udělej to ;)
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Micinaua
David Hartinger:11.12.2011 18:35

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))
Nahoru Odpovědět
11.12.2011 18:35
New kid back on the block with a R.I.P
Avatar
Micinaua
Člen
Avatar
Micinaua:11.12.2011 23:38

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,ob­ject0){
//akce
}

 
Nahoru Odpovědět
11.12.2011 23:38
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Micinaua
David Hartinger:12.12.2011 9:29

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.

Nahoru Odpovědět
12.12.2011 9:29
New kid back on the block with a R.I.P
Avatar
Micinaua
Člen
Avatar
Odpovídá na David Hartinger
Micinaua:12.12.2011 15:43

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.. ;)

 
Nahoru Odpovědět
12.12.2011 15:43
Avatar

Tvůrce
Avatar
:12.12.2011 16:12

Podle mě se s tím moc zabíráte... Já bych normálně udělal neviditelný objekt + kolize, je zbytečný pořát vypisovat proměnné x y, pro každý room zvlášť.....

 
Nahoru Odpovědět
12.12.2011 16:12
Avatar
Micinaua
Člen
Avatar
Odpovídá na
Micinaua:12.12.2011 20:34

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.

 
Nahoru Odpovědět
12.12.2011 20:34
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.