检测是否按下了if语句的数字键
Detecting the pressing of a number key for an if statement
我正在尝试制作一个游戏,在这个游戏中,正确的数字组合会给玩家带来帮助他们通过关卡的效果。我的计划是使用if语句来测试被按下的键,并相应地更改变量。这应该很简单,但我的尝试失败得很惨,而我找不到任何页面来充分解释这一点。那么,有人知道我如何检测javascript中if语句的数字键按下吗?
如果您想要输入某个特定的数字序列,则需要使用缓存并检查每个击键。下面是一个例子。我已经表示,我想要1,然后是2,然后是3。做错了会重置顺序。在这种情况下,完成它也会重置。
试试看。运行它并按1,然后按2,然后按3。中断序列意味着您必须重新启动。
//press 1, then 2 then 3
var code = [49, 50, 51]
var cache = [];
function checkCode(eve) {
var keycode = eve.keyCode || eve.which;
if(keycode === cache.shift()){
if(!cache.length){
//resets if you did it. do not include if you want once.
replenishCache();
//do whatever you do here.
doThing();
}
} else {
replenishCache();
}
}
function doThing(){
alert('sequence entered');
}
function replenishCache(){
cache = code.slice(0);
}
replenishCache();
window.addEventListener('keypress', checkCode, false);
我要补充的是,这段代码完全不在任何框架、模块或模式的上下文中。我只是在窗口上附加了一个事件来说明。你需要考虑如何将其迁移到你正在做的任何事情中。例如,在这种情况下,与其直接调用一个更全局的函数doThing
,不如将其传递到某种插件或模块中。字符代码序列也是如此。
相关文章:
- 使用 Javascript switch 语句,如何计算数组中元素的数量(仅数字)
- switch语句中的数字比较失败
- 如何使用if语句jquery对数字进行动画处理
- 如何在函数中编写 if/else 语句,告诉我一个数字是否可以被 2 整除(在 javascript 中)
- 检测是否按下了if语句的数字键
- 如果语句是假的 JavaScript,则再次随机化数字
- 使用开关语句的英文单词数字
- 如何从语句中返回具有前缀的数字
- 在 JS 中使用 if else 语句来检查 HTML 表单元素是否等于某个数字
- 如何使用 javascript 按顺序运行数字语句
- 在 JavaScript 的数学语句中将数字更改为带有分隔符的数字
- if/else 语句比较数字
- 在 Javascript 中只有一个数字的 if 语句
- For语句将i视为字符串而非数字
- 为什么除了0之外的所有数字都会用JavaScript传递if语句
- 如何使用JavaScript将if语句中的变量与数字进行比较
- If语句需要提醒用户输入的数字
- 我如何修复重叠的数字在if/else语句
- switch语句是如何工作的?case标签是变量,传入的表达式是一个数字
- 简化/组合if语句逻辑(当使用数字时)