Diskuze: Pohyb příšer za hráčem

Ostatní jazyky GameMaker GameMaker Pohyb příšer za hráčem

Avatar
cztomt
Redaktor
Avatar
cztomt:

Dobrý den, chtěl bych se zeptat jak se dá udělat, aby přišel hráč do nějaké vzdálenosti od příšery a v tu dobu by příšera začla chodit za hráčem??

 
Odpovědět 5.3.2012 20:12
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na cztomt
David Čápka:

Existuje funkce point_distance(x1,y1,x2,­y2), v parametru jsou 2 body (1, 2) a vrátí vzdálenost mezi nimi. Toto se vloží do stepu příšery a bude se kontrolovat její pozice proti pozici hráče, tedy:

if (point_distance(x,y,hrac.x,hrac.y) < 100)
...

Potom stačí vykonat danou akci, buď nastavit nějaký stav příšerce nebo ji změnit za instanci, která bude hráče pronásledovat.

Nahoru Odpovědět 5.3.2012 21:30
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
cztomt
Redaktor
Avatar
cztomt:

Díky moc

 
Nahoru Odpovědět 6.3.2012 6:58
Avatar
cztomt
Redaktor
Avatar
cztomt:

Dobrý den, ještě bych se chtěl zeptat jakou akci nebo jak tu příšeru změnit za instanci?

 
Nahoru Odpovědět 6.3.2012 15:56
Avatar
Odpovídá na cztomt
David Jančík [sczdavos]:

Dobrý den,
pokud chcete, aby příšerka pronásledovala hráče stačí ve step eventu kontrolovat

if (point_distance(x,y,hrac.x,hrac.y) < 100)

A jakmile tato podmínka bude platná - pronásledovat hráče například touto funkcí:

mp_potential_step(hrac.x,hrac.y,speed,solid);// pokud zadáte solid - bude se při pronásledování vyhýbat objektům s vlastností solid

Pokud máte jiné úmysly a instanci potřebujete změnit použijte:

instance_change(obj,perf);

Viz.:
http://www.itnetwork.cz/index.php?…

Nahoru Odpovědět 6.3.2012 16:17
Čím více času dostaneš, tím méně ho máš.
Avatar
cztomt
Redaktor
Avatar
cztomt:

U podmínky
if (point_distan­ce(x,y,hrac.x,hrac­.y) <100)
mi píše nějaký error v 45 znaku, tedy v tom posledním. Nevíte co stím mám udělat?

 
Nahoru Odpovědět 6.3.2012 16:43
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na cztomt
David Čápka:

Co třeba napsat chybovou hlášku? Chybu můžeš mít v příkazu pod tím, nenapadá mě, kde by tady byla chyba, možná chybějící mezera za tím většítkem by se mu nemusela líbit.

Nahoru Odpovědět 6.3.2012 17:26
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
Odpovídá na cztomt
David Jančík [sczdavos]:

Můžete také použít tuto funkci (zde zadáte pouze název objektu)

if (distance_to_object(hrac)<100)
...

Jsou úplně stejné, pokud Vám chybu napíše i tato pak je problém v přístupu k objektu hráče nebo v příkazech pod ní se vykonávajících.

Nahoru Odpovědět 6.3.2012 17:36
Čím více času dostaneš, tím méně ho máš.
Avatar
cztomt
Redaktor
Avatar
cztomt:

Díky za rady já už jsem to vyřešil podle ukazkové hry alien

 
Nahoru Odpovědět 7.3.2012 21:29
Avatar
jan.ost
Člen
Avatar
jan.ost:

a ještě něco řeknu zase já.
potřebuju udělat že při pronásledování se příšera (v mém případě sliz) bude otáčet za hráčem.
potřebuju to do mé rpg hry kterou sem asi za týden dám jestli to výjde 8-)

Nahoru Odpovědět 9.3.2012 16:16
Jeden na všechny, všichni utečte!
Avatar
Odpovídá na jan.ost
David Jančík [sczdavos]:

Stačí kontrolovat směr, kterým příšera jde a dle toho nastavovat úhel natočení

image_angle = direction; //0-360° -> jednotková kružnice
Nahoru Odpovědět 9.3.2012 18:15
Čím více času dostaneš, tím méně ho máš.
Avatar
jan.ost
Člen
Avatar
Nahoru Odpovědět 10.3.2012 8:16
Jeden na všechny, všichni utečte!
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 12 zpráv z 12.