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