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í.
Pouze tento týden sleva až 80 % na e-learning týkající se Pythonu. Zároveň využij slevovou akci až 30 % zdarma při nákupu e-learningu - Více informací.
discount 30 + hiring
Avatar
Energy304
Člen
Avatar
Energy304:14.3.2013 13:12

Zdravím, dělám v xna skákačku. Udělal jsem si nepřítele který pronásleduje hráče. A nemůžu přijít na to jak udělat aby nepřítel vyběhl až bude hráč v blízkosti nepřítele.

if (player.position.X > enemy.position.X)
{
   enemy.position.X++;
}
if (player.position.X < enemy.position.X)
{
   enemy.position.X--;
}
 
Odpovědět
14.3.2013 13:12
Avatar
Odpovídá na Energy304
Michael Olšavský:14.3.2013 13:22
if(Math.Abs(player.position.X - enemy.position.X) < *value*)
   enemy.position.X++;

Nebo naopak
Snad to bude fungovat.

 
Nahoru Odpovědět
14.3.2013 13:22
Avatar
Energy304
Člen
Avatar
Odpovídá na Michael Olšavský
Energy304:14.3.2013 13:31

Nepřítel pořád běží a po dosažení value se zastaví bude to asi naopak

 
Nahoru Odpovědět
14.3.2013 13:31
Avatar
Odpovídá na Energy304
Luboš Běhounek Satik:14.3.2013 13:33

třeba takhle:

bool isNear (float dist, Position player, Position enemy)
{
  return (player.position.x*player.position.x+player.position.y*player.position.y<dist*dist);
}

// tenhle kod pak do kontroly:
if isNear(20.0f, player.position, enemy.position)
{
  if (player.X>enemy.X)
    enemy.position.X++;

  if (player.X<enemy.X)
    enemy.position.X--;
}
Editováno 14.3.2013 13:36
Nahoru Odpovědět
14.3.2013 13:33
https://www.facebook.com/peasantsandcastles/
Avatar
Energy304
Člen
Avatar
Energy304:14.3.2013 13:35

Díky moc

 
Nahoru Odpovědět
14.3.2013 13:35
Avatar
Energy304
Člen
Avatar
Energy304:14.3.2013 19:18

Nakonec jsem poupravil verzi od brisingr002

if (Math.Abs(player.position.X - zombie.position.X) > 300 && player.position.X > zombie.position.X)
                 zombie.position.X--;
             if (Math.Abs(player.position.X - zombie.position.X) > 300 && player.position.X < zombie.position.X)
                zombie.position.X++;
 
Nahoru Odpovědět
14.3.2013 19:18
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 6 zpráv z 6.