2013-04-18 60 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啓動套件