javascript中实现伪异步

本文介绍了一个乒乓球对战游戏中实现伪异步技术的方法,通过使用闭包管理资源、设置按键状态数组及定时器来确保两个选手可以同时按键而不会相互影响。

我说的伪异步是下面的意思:

比如我写了个乒乓球对战游戏,那么有两个选手,他们都可能同时按键,要想他们之间的按键不相互影响。

下面是我从书上看到的一种思路。

设置一个数组,用于标记按键的状态,当某个按键按下时,设置该按键的状态为true,当放开该按键时,设置为false;

设置一个定时器,定时检查某些特定监听键的状态,如果是true,则执行相应操作。


大概代码如下:

var ping={}//闭包管理资源
ping.keys=[];//记录键的状态
$(function(){//用到了jquery,页面加载完就调用下面的代码
ping.timer=setInterval(fun,30);//设置定时器,fun为每隔30秒调用的方法

$(document).keydown(function(e){
  ping.keys[e.which]=true;//设置状态
});//某个按键按下
$(document).keyup(function(e){
 ping.keys[e.which]=false;//设置状态
});
});

//下面是定时器调用的方法
function fun(){
.
.
.
检查某些按键的状态,并执行相应操作
.
.
}

这样,两个选手就可以同时按键了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值