如何在 C# 中为 Xbox 360 按钮添加别名?
我是 C Sharp 新手,正在使用 XNA 框架编写游戏。
我正在尝试为 Xbox 360 控制器上的按钮建立变量,这样我就可以在一处重新配置按钮的游戏功能,而不必更改对各处按钮的直接引用。
因此,如果我想分配一个按钮来“攻击”,而不是这样:
if (gamePadState.IsButtonDown(Buttons.B)
{
// do game logic
}
我想这样做:
if (gamePadState.IsButtonDown(MyAttackButton)
{
// do game logic
}
有什么想法吗?我确信这是一个非常简单的解决方案,但我已经尝试了多种方法,但还没有奏效。谢谢!
I'm new to C Sharp, and writing a game w/ the XNA Framework.
I'm trying to establish variables for the buttons on the XBox 360 controller, so I can reconfigure the buttons' game functions in one place and not have to change direct references to the buttons everywhere.
So if I want to assign a button to "attack", instead of this:
if (gamePadState.IsButtonDown(Buttons.B)
{
// do game logic
}
I want to do this:
if (gamePadState.IsButtonDown(MyAttackButton)
{
// do game logic
}
Any ideas? I'm sure it's a very simple solution, but I've tried several approaches and none have worked yet. Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
Buttons
只是一个枚举,因此您只需创建一个具有该名称的变量,例如Buttons
is just an enum, so you just need to create a variable with that name like另一种方法是在某处定义一个枚举:
然后测试它:
An alternative would be to define an enum somewhere:
Then to test it:
您还可以创建一个字典:
这种方法的优点是可以在运行时修改按钮映射,因此您可以使用它来实现可定制的控件设置。
You could also create a dictionary:
The advantage of this method is that the button map can be modified at runtime, so you can use it to implement customizable control settings.