按下代码按钮
Button held down by code
我正在写一款游戏,我试图让一个人移动与箭头键。
我有这个代码
if (Key_Down(DIK_DOWN))
{movedown(player)}
这是可行的,但因为我希望玩家每次按下按键都要走四步,所以我创建了一个动画循环。所以玩家不能再输入任何移动命令,直到动画结束,他们已经采取了四个步骤,我的代码如下。
if(player.move == false)
{
if (Key_Down(DIK_DOWN))
{movedown(player)}
}
问题是,现在一旦按钮被按下,程序就像按住按钮一样,玩家一直移动,直到另一个方向被按下。
谁能解释一下外循环对代码做了什么并修复这个问题?
它是在visual c++ 2005和直接x . 9中编写的。编辑:
如果我删除外部循环,那么按钮按下只注册一次,所以我不认为这是movedown函数
只需跟踪变量中的keystate即可。你可以重置一个移动计数器。像这样,结合两者:
int MovingDown = 0;
...
if (!Key_Down(DIK_DOWN)) MovingDown = 0;
else if (MovingDown < 4) {
MovingDown++;
movedown(player);
}
在没有看到更多代码库的情况下很难判断,但我猜你没有在移动玩家后重新设置player.move
。你有没有试过在那里设置一些断点来查看正在调用什么以及为什么调用?
如果你删除if(player.move == false)
线它有同样的问题吗?..或者你在其他地方做了改变?如果你能发布更多的代码库,比如整个movedown函数和其他任何交互(例如动画代码),它将帮助我们帮助你…
[Edit]是一个宏吗?也许你会因此产生一些奇怪的副作用?如果没有,应该在函数调用后加一个分号。
KEY_DOWN返回什么?这是一个API调用吗?尝试测试您期望返回的确切值?
相关文章:
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 代码在main()中运行,但在函数中出现错误
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 编译包含字符串的代码时遇到问题
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 所有按钮是否应包含MVC代码(C )中控制器的引用
- 如果代码正确,为什么我在“确定”按钮上有这些错误
- 如何让我的C++代码与QT按钮一起使用并打印到QlineEdit?
- 每次我将(播放旋律 - )代码上传到Arduino时,我按下按钮时,它会在数组中跳过相同的音符.怎么会
- 从代码添加时无法单击Qt按钮
- 如何使用C++代码并将其添加到 C# gui 按钮
- 按下按钮时,键盘矩阵代码未返回正确的列号
- 当在C#中的WPF应用程序中单击一个按钮时,如何调用C 代码
- 从C++代码发出 BB 级联按钮的"clicked()"信号
- MS功能区:从代码中绘制按钮图标
- 如何手动设置单选按钮激活(通过代码)
- 如何使用gtk中的代码将单选按钮设置为选中
- 按下代码按钮