java - 按下按钮时如何在java中只运行一次?
问题描述
我想创建一个游戏,当婴儿在 12 岁时使用按钮进入 Y 位置时,我必须让婴儿返回。我希望它从 12 即 10 移动 2 位置并从 10 移动到 6,但代码将婴儿直接移动到 6。注意:语法错误不允许我将图标和婴儿发布为相同。它是一个变量名。
if (baby_posY==12) {
if (baby_posY==12) {
tiles[baby_posX][baby_posY].setIcon(null);
baby_posY=baby_posY-2;
tiles[baby_posX][baby_posY].setIcon(icon Baby);
}
if (baby_posY==10) {
tiles[baby_posX][baby_posY].setIcon(null);
baby_posY=baby_posY-4;
tiles[baby_posX][baby_posY].setIcon(icon Baby);
}
}
解决方案
您应该在后续检查中使用 else if,而不是 if。发生的事情是 12 将变为 10,然后它检查 10,并使其变为 6。使用else
您可以防止这种情况发生
if (baby_posY==12) {
tiles[baby_posX][baby_posY].setIcon(null); baby_posY=baby_posY-2; // **** right here is what's causing the double move
tiles[baby_posX][baby_posY].setIcon(icon Baby);
} else if (baby_posY==10) { // adding 'else' will prevent this second condition from triggering if the first was triggered
tiles[baby_posX][baby_posY].setIcon(null); baby_posY=baby_posY-4;
tiles[baby_posX][baby_posY].setIcon(icon Baby);
}
推荐阅读
- visual-studio - 通过快捷键在解决方案资源管理器中使用相对路径打开文件
- css - 如何在 css 中创建 3d 堆叠长方体
- blazor-webassembly - 无法在启用热重载功能的情况下运行 blazor 程序集项目(.net 6 预览版 5)
- smtp - SAP Hybris SMTP 已配置,但邮件输入欺诈报告而不是创建新票证
- react-native - 如何在 react-navigation 4 中导航到选项卡内的新屏幕
- electron - 在 Electron 应用程序中运行 cli 命令找不到代码命令
- php - 如何获取 PSID Facebook 信使
- python - 运行 linux 可执行文件时出错使 bu pyinstaller
- c# - Microsoft Bot C# SDK 在使用自适应卡片附件的 WaterfallStepContext 期间从卡片提交操作中获取错误
- python - Doc2Vec __init__() 有一个意外的关键字参数“大小”