使用しているコードは次の行にあります。しかし、それは単に冗長であるように思われ、次の代替案が最適化されているかどうか興味がありました...
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を使用することを考えましたが、カスタム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);}
}
});