c# - 使用箭头键而不是拇指摇杆移动播放器

标签 c# xna-4.0 arrow-keys

我正在开发一款 2d 游戏,我希望玩家能够使用箭头键移动。

我设法让玩家通过左摇杆(Xbox 360 Controller )移动

GamePadState gamePadState = GamePad.GetState(PlayerIndex.One);
hero.position.X += gamePadState.ThumbSticks.Left.X * 20;

但我不知道如何用箭头键移动它。

任何人都可以帮助我吗? :)

最佳答案

要处理键盘,您可以使用 Keyboard.GetState()返回 KeyboardState。获得键盘状态后,您可以调用 KeyboardState.IsKeyDown()以确定是否按下了您感兴趣的键。如果按下该键,则相应地调整 x 和 y 坐标。

请记住,拇指摇杆是模拟输入,因此您可以获得一系列值,指示摇杆向左、向右、向上或向下移动的距离,这允许玩家对“速度”进行一些控制。键盘是数字的,所以它要么被按下,要么没有被按下,所以角色要么移动要么不动。有一些技巧可以让您在键盘上感觉相似,但首先让您的角色移动,然后如果您需要它,您可以深入研究它。

您还应该看看 XNA 附带的平台入门工具包,该代码应该会让您对如何处理输入设备有一些想法。

关于c# - 使用箭头键而不是拇指摇杆移动播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7460715/

相关文章:

java - java中的箭头键、TextField焦点?

c# - 使用 c# 和 sql 来滚动您自己的 wiki 有什么用?

c# - C++ 后端与 C# 前端?

c# - 为什么静态类被认为是 “classes” 和 “reference types” ?

c# - 使用 StringBuilder 反射的无垃圾字符串类未正确初始化

javascript - 如何在按下按键时更改 div 的值

c# - Scintilla 中的自定义语法突出显示是如何工作的(为什么我的没有)?

c# - 使用委托(delegate)作为方法执行队列?

c# - FBX 模型无法在 XNA 4.0 中正确显示

c - 获取和箭头代码