更有效的方法是检查是否设置了变量,然后设置它,或者只是不断地设置它
More efficient to check if a variable is set, then set it, or just constantly set it?
制作游戏…这样做更有效率吗?
if (37 in keysDown) { //left arrow
if (sprite.state != 'left') sprite.state = 'left';
}
还是这个?
if (37 in keysDown) { //left arrow
sprite.state = 'left';
}
这是在我的游戏更新功能中被调用的(不断地,尽可能快地)。
旁注:这是我的输入键检查代码。
//input
var keysDown = {};
window.addEventListener('keydown', function(e) {
keysDown[e.keyCode] = true;
});
window.addEventListener('keyup', function(e) {
delete keysDown[e.keyCode];
});
"我们应该忘记小的效率,大约97%的时间:过早的优化是所有罪恶的根源。"
<一口> http://c2.com/cgi/wiki?PrematureOptimization 一口> <子>子>
这两种方法具有相同的复杂性,设置'更改四个字符的变量不会成为应用程序中的瓶颈。
我在这里关心的唯一的事情是你的代码的可读性,如果任何一种方式你想要sprite.state
有值left
为什么你需要检查什么是以前的值?
(哦,它节省了大约20比特的带宽,就像这里的性能增益一样…)
这样不是比遍历键要快得多吗?您可以非常快速地连续检查变量。
var keyleft=false;
window.onkeydown = keydown;
window.onkeyup = keyup;
function keydown(event)
{
var keyCode = ('which' in event) ? event.which : event.keyCode;
if (keyCode==37) keyleft=true;
}
function keyup(event)
{
var keyCode = ('which' in event) ? event.which : event.keyCode;
if (keyCode==37) keyleft=false;
}
不能保证这段代码能正常工作,我已经忘记了如何在没有jQuery的情况下做事情
相关文章:
- 设置随机数,然后每5秒随机减少一次,直到达到0(javascript)
- 构建空图表,然后设置它's数据
- 从骨干集合筛选模型,然后为这些模型设置属性
- 搜索包含值的json对象键,然后取消设置
- JS-移动图像,暂停设置的时间,然后将图像向后移动
- 检测价格是否高于或低于200.00,然后设置(此)表格行的样式
- 通过getElementById获取id,然后设置值
- jQuery设置attr,然后获取attr
- 将twitter引导程序popover设置为在某个事件之后隐藏,然后在另一个事件之后显示
- 设置变量 if..然后是JavaScript
- 如何使用 JQuery 检索设置了特定类的所有标签的列表,然后从这些标签中删除内容
- 如何将变量设置为文本输入,然后使其显示在屏幕上
- 设置 $(element).style.backgroundColor,然后检查但不起作用
- Javascript 如果键在数组中然后设置它,否则添加到它
- 角度$scope首先设置值而不是服务,然后第二个函数调用一切正常
- 如何获取html标签的计算样式值,然后将值设置为“样式”
- 取消设置元素可见性,更改 innerHTML,然后转换回来
- setRequestHeader 不起作用,我想设置我的标头,然后在 Amazon EC2 中的 ajax 中发出 GE
- 调用函数一次,然后设置间隔
- Javascript设置然后显示一个cookie值