2013-04-18 35 views
3

好吧,我有一些代码让我的敌人在XNA游戏中跟随玩家,但他们只跟随玩家,直到玩家在他们面前。如果玩家移过敌人,它将停止向他移动。相反,他们会不断地与球员上下移动。如何让XNA中的所有玩家都能在XNA的屏幕上跟随玩家?

我使用的代码是这样的:

  Vector2 direction = player.Position - goblins[i].Position; 
     direction.Normalize(); 
     Vector2 velocity = direction * goblins[i].enemyMoveSpeed; 
     goblins[i].Position += velocity; 

(忽略妖精一下,我刚刚更换了显卡)

不完全知道从哪里去用它,任何想法?

+1

即代码看起来没什么问题。你有没有尝试设置一个断点,看看值是否正确更新?也许这些值在当前代码之外被操纵。 – Nolonar

+0

顺便说一句:“精灵[i] .enemyMoveSpeed”究竟是什么?它是“浮动”还是“Vector2”? – Nolonar

+0

你先生是英雄。我不小心遗留了另一行代码,指定了一个移动规则,这意味着他们将以两倍的速度向左移动,但根本无法移动。感谢一堆:) –

回答

2

汤姆,你好,你好吗?

这里有两个例子是对我帮助很大:

  1. 大通&回避率(http://xbox.create.msdn.com/en-US/education/catalog/sample/chase_evade)这是Microsoft示例,演示如何实现人工智能几个简单的行为,包括追逐,躲避,并徘徊。
  2. 添加的视图相关号码1样品的敌人(http://robotfootgames.com/xna-tutorials/5-xna-platformer-starter-kit-field-of-view-for-enemies)一个字段,并Plaformer启动套件