我正在使用以下代码行。但这似乎是多余的,我很好奇是否有以下优化的替代方案......
if(mkey[65]){ //this is left! (a)
var nextpos = $("#item").x()-player.speed;
if(nextpos > 0){
$("#item").x(nextpos);
}
}
if(mkey[68]){ //this is right! (d)
var nextpos = $("#item").x()+player.speed;
if(nextpos < pg.width - 100){
$("#item").x(nextpos);
}
}
if(mkey[87]){ //this is up! (w)
var nextpos = $("#item").y()-player.speed;
if(nextpos > 0){
$("#item").y(nextpos);
}
}
if(mkey[83]){ //this is down! (s)
var nextpos = $("#item").y()+player.speed;
if(nextpos < pg.height - 30){
$("#item").y(nextpos);
}
}
我考虑过使用jquery each 方法,但只花了我到目前为止,因为我不知道你是否可以将自定义JavaScript函数存储到数据对象中......
感谢您的任何建议!
这是我尝试过的......(没有运气)
$.each([
{keypress: mkey[65], item:$("#item").x()-player.speed},
{keypress: mkey[68], item:$("#item").x()+player.speed},
{keypress: mkey[87], item:$("#item").y()-player.speed},
{keypress: mkey[83], item:$("#item").y()+player.speed}
], function(i, obj) {
if (obj.keypress) {
if(obj.item > 0) { $("#item").x(obj.item);}
}
});