好的,我懷疑邊界是錯誤的。我已將所有if
聲明更改爲我認爲將字符保留在地圖範圍內的正確聲明。
$(document).bind('keydown',function(e){ //set the keydown function as...
switch(e.which)
case 37: $(characterName).css("background-image", "url(img/character-left.gif)"); //LEFT ARROW KEY
var character = $(characterName);
var map = $('#map');
if((character.offset().left - 40) > map.offset().left) {
character.animate(
{
left: '-=40'
},
250,
function(){}
);
}
break;
case 39: $(characterName).css("background-image", "url(img/character-right.gif)"); //RIGHT ARROW KEY
var character = $(characterName);
var map = $('#map');
if((character.offset().right + 40) < map.offset().right) {
character.animate(
{
left: '+=40'
},
250,
function(){}
);
}
break;
case 38: $(characterName).css("background-image", "url(img/character-up.gif)"); //UP ARROW KEY
var character = $(characterName);
var map = $('#map');
if((character.offset().top - 40) < map.offset().top) {
character.animate(
{
top: '-=40'
},
250,
function(){}
);
}
break;
case 40: $(characterName).css("background-image", "url(img/character-down.gif)"); //DOWN ARROW KEY
var character = $(characterName);
var map = $('#map');
if((character.offset().bottom + 40) < map.offset().bottom) {
character.animate(
{
top: '+=40'
},
250,
function(){}
);
}
break;
}
});
關於你的編輯,你還在檢查字符的'.left'到地圖的'.top'。 – ScottS 2010-07-23 13:48:23
哎呀,更新我的代碼/問題:) – 2010-07-23 13:54:15
檢查我的第二個答案,我認爲正確的邊界應該是。試試看。 – ScottS 2010-07-23 13:56:16