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. 限制鍵盤輸入jQuery
- 5. 鍵盤控制?
- 6. 鍵盤輸入
- 7. 使用USB控制器進行鍵盤輸入(APC40 - > WoW)
- 8. C++,如何用鍵盤輸入控制程序流程
- 9. 在控制檯應用程序中解析Java鍵盤輸入
- 10. 如何模擬鍵盤輸入到控制檯應用程序?
- 11. XNA - 如何繪製更遠的物體
- 12. Popup控制鍵盤
- 13. 使用鍵盤輸入actionscript 3輸入
- 14. 鍵盤輸入PHP
- 15. Libgdx鍵盤「輸入」
- 16. 鍵盤輸入java
- 17. Ncurses鍵盤輸入
- 18. 軟鍵盤輸入
- 19. Tcl鍵盤輸入
- 20. 鍵盤輸入返回鍵
- 21. 在插入物理鍵盤時禁用Android鍵盤的情況
- 22. 鍵盤輸入與可編程鍵盤
- 23. 鍵盤中的TextField輸入限制
- 24. 在記事本++中禁用鍵盤快捷鍵的控制字符輸入
- 25. 控制鍵盤輸入場景中的PShapes數量
- 26. 查看滾動鍵盤打開時輸入控制
- 27. 實時鍵盤輸入到控制檯(在Windows中)?
- 28. 捕獲焦點鍵盤輸入C#控制檯程序
- 29. 鍵盤輸入來控制像素着色器
- 30. 獲取控制檯中的鼠標和鍵盤輸入C++