想做一个用js做的游戏,类似冒险岛这样的横盘游戏来学习js。
但是没想到突然遇见了这么一个问题,js和jq都可以达到键盘监听事件。上下左右都可以用js来获取当前的event.which来判断它的值来执行对应的动作。
但是突然想到了。如果我想做前进加跳跃该是什么思路呢?
问了一些朋友,他们说有种办法,是这样:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<script src="lib/jquery-1.6.4.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(
function(){
document.onkeydown = function()
{
var oEvent = window.event;
if (oEvent.keyCode == 13 && oEvent.ctrlKey) {
alert("你按下了ctrl+enter");
}
}
}
);
</script>
<title>无标题文档</title>
</head>
<body>
</body>
</html>
这两种办法都比较生疏。不知道用过js做过类似效果的朋友思路是怎么样的呢??
![Uploading screenshot . . .]()
// 上下左右 斜
let time = ''
let a = []
document.onkeydown =(e)=>{
a[e.which] = true // 判断 ☆
time = setTimeout(()=>{
a[37]&& (box.style.left =box.offsetLeft-5+'px')
a[38]&& (box.style.top = box.offsetTop-5+'px')
a[39]&& (box.style.left =box.offsetLeft+5+'px')
a[40]&& (box.style.top = box.offsetTop+5+'px')
},160) =>> 移动速度
}
document.onkeyup =(e)=>{
a[e.which]=false
}
<!DOCTYPE html>
<html>
<head>
<title>key</title>
<meta charset="utf-8">
<meta name="renderer" content="webkit">
</head>
<body>
<p id='p'></p>
<script>
var keyT;
window.onkeydown = function(e){
var timeout;
if(!keyT){
keyT=true;
if(e.keyCode==65){
p.innerHTML="你单击了a";
timeout=setTimeout(function(){
keyT=false;
},200)
}
}else{
keyT=false;
if(e.keyCode==65){
p.innerHTML="你双击了a";
}
}
}
</script>
</body>
</html>
双击判断事件但是有个不好的bug就是双击事件必须会触发一次单击事件。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。