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
Bekolanie(johhanb):29.10.2011 19:35

Dobrý večer potřeboval bych zdefinovat....
Udělal jsem objekt medic při čemž jak dojde ke kolizi s player má se
dobít global.o_play­er01hp+=1.0;

Problém mám v tom že objekt jsem-li v kuse s kolizi opět pořád se dobíji o 1.0 livehp. Až na 100.

Zkoušel jsem alarmy, destroy ins, bez výsledku.
Potřebuju aby hp dobylo o 1.0 a bylo zrušeno dobíjení.
Zajímá jak na to?

Odpovědět
29.10.2011 19:35
Jak sa volá tak se ozývá.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Bekolanie(johhanb)
David Hartinger:29.10.2011 20:57

To záleží na tom, jak se má medic chovat. Když chceš něco naprogramovat, nejdřív musíš vědět, co vlastně chceš, aby program dělal. Jsou zde 2 základní možnosti:

  1. Pokud chceš, aby hráč mohl medika využít jen jednou za hru/mapu/level: V objektu Medic si v create nastav proměnnou uzdravenhrac0=fal­se; V kolizi si potom zjisti, jestli je tato proměnná false a pokud ano, hráči přidej život tím příkazem, jakým to děláš a zároveň nastav uzdravenhrac0=true; Díky tomu se to už podruhé neprovede. Nezpomeň dát oba příklady do bloku, kód tedy bude:
if (not uzdravenhrac0)
{
  uzdravenhrac0 = true;
  global.o_player01hp+=1.0;
}
  1. Pokud chceš, aby medik dobil život opakovaně, ale ne hned, využiješ alarm. V Create eventu opět nastavíš uzdravenhrac0 = false; Do kolize napíšeš ten samý blok, jako výše, ale do složených závorek přidáš 3. příkaz a to alarm[0]=200; Tím nastavíš alarm0 na 200 kroků. Potom není nic jednoduššího, než v událostí On alarm[0] napsat příkaz uzdravenhrac0 = false; Tím se opět umožní dobití života a celá situace se může opakovat.

Příště prosím směřuj otázky do Fóra do sekce GameMaker - http://www.itnetwork.cz/index.php?…, zde se probírají hry na přání, s tím nemá tvůj dotaz moc společného ;)

EDIT 23:16 - v událostí On alarm[0] napsat příkaz uzdravenhrac0 = FALSE; (samozřejmě, už jsem myslel na něco jiného :) )

Nahoru Odpovědět
29.10.2011 20:57
New kid back on the block with a R.I.P
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 2 zpráv z 2.