0
A
回答
1
你的問題不是很清楚 - 我會假設你正在使用模型和矩陣(而不是SpriteBatch或其他)。所以,猜測 - 我會說你矩陣運算的順序是不正確的。
This answer對類似的問題可能有幫助。
每個矩陣操作發生在原點周圍。因此,如果您在之後做了輪換,您將您的輪船移動到位,您的輪轉也將有效地「旋轉」運動方向。
0
最簡單的方法是使角度和速度可變,因此當您單擊左右鍵時可以更改角度,而當您單擊上下方向鍵時可以改變船舶的速度。
KeyboardState ks;
float speed = 0;
float angle = 0;
protected override void Update(GameTime gameTime)
{
ks = Keyboard.GetState();
if(ks.IsKeyDown(Keys.Up)) speed += 10;
if (ks.IsKeyDown(Keys.Down)) speed -= 10;
if (ks.IsKeyDown(Keys.Right)) angle += 10;
if (ks.IsKeyDown(Keys.Left)) angle -= 10;
}
0
你需要有方向矢量這樣
Vector3 direction = Vector3.Transform(Vector3.Forward, Matrix.CreateFromYawPitchRoll(yaw, pitch, roll));
接下來,讓你的速度矢量
Vector3 velocity = direction * speed;
而且移動你的船
float time (float) = gameTime.ElapsedTime.TotalSeconds;
position += velocity * time;
在這個例子中偏航是角度,間距和輥保持0
相關問題
- 1. XNA鍵盤輸入
- 2. XNA - 鍵盤輸入
- 3. XNA - 鍵盤文本輸入
- 4. XNA遊戲更好的鍵盤輸入
- 5. 限制鍵盤輸入jQuery
- 6. 鍵盤輸入限制
- 7. 限制性鍵盤輸入
- 8. 鍵盤控制?
- 9. 鍵盤輸入
- 10. 使用USB控制器進行鍵盤輸入(APC40 - > WoW)
- 11. 如何模擬鍵盤輸入到控制檯應用程序?
- 12. 在控制檯應用程序中解析Java鍵盤輸入
- 13. C++,如何用鍵盤輸入控制程序流程
- 14. GLUT中的流體鍵盤輸入?
- 15. 使用鍵盤控制NSSegmentedControl
- 16. Popup控制鍵盤
- 17. 鍵盤控制tinyscrollbar.js
- 18. VB控制鍵盤
- 19. XNA - 如何繪製更遠的物體
- 20. Ruby Curses控制輸入鍵
- 21. 使用鍵盤輸入actionscript 3輸入
- 22. 如何確定哪個窗體控制VB.net上的鍵盤輸入
- 23. 用鍵盤熒幕輸入
- 24. 使用Winapi鍵盤輸入
- 25. 用html鍵盤輸入
- 26. 從XNA中的多個鍵盤獲取輸入
- 27. C#XNA鍵盤輸入問題。代碼總是返回false
- 28. 軟鍵盤輸入
- 29. Tcl鍵盤輸入
- 30. 鍵盤輸入PHP