0
我有幾個公式用於向目標發射子彈,但是當玩家從原始位置移動並且子彈達到預期的玩家舊位置時,它會全部失效。處理拋射物遺漏和彈道
當PlayerPosition == BulletPosition時,如果子彈未命中,該如何讓子彈沿着正確的方向繼續前進?我的問題是,一旦子彈達到它應該停止的位置,我需要一個新的公式來保持它的移動。
如果它擊中了玩家,那很容易,刪除物品,但我似乎無法找到一個好的解決方案。下面是一些代碼,現在它非常簡單。
var movement = PlayerPosition - Position;
if (movement != Vector2.Zero)
movement.Normalize();
//var angle = Math.Atan2(movement.Y, movement.X);
Position += movement*_projectileMoveSpeed;
我認爲問題是PlayerPosition永遠不會在我的實例中增加。我認爲解決的辦法是在最後添加PlayerPosition + = My new Vector,所以它永遠無法到達最終位置,並會死在邊緣。 – firebellys 2012-03-01 00:44:59