function moveCharacterdirection var character = $#character; var currentPosition = characterposition; var newPosition = ; switchdirection case left newPosition = top currentPositiontop
为了防止角色移动到屏幕外面,需要在移动角色的函数中添加边界检查的代码。可以在移动角色之前,检查新位置是否超出了屏幕边界,如果超出了,则不执行移动操作。
下面是一个示例代码,用于限制角色在屏幕内移动:
function moveCharacter(direction){ var character = $('#character'); var currentPosition = character.position(); var newPosition = {}; switch(direction){ case 'left': newPosition = {top: currentPosition.top, left: currentPosition.left - 50}; character.css('background-image', 'url(' + (isTransformed ? 'img/playerbig_left.gif' : 'img/player_left.gif') + ')'); break; case 'right': newPosition = {top: currentPosition.top, left: currentPosition.left + 50}; character.css('background-image', 'url(' + (isTransformed ? 'img/playerbig_right.gif' : 'img/player_right.gif') + ')'); break; case 'up': newPosition = {top: currentPosition.top - 50, left: currentPosition.left}; character.css('background-image', 'url(' + (isTransformed ? 'img/player1_big.gif' : 'img/player1.gif') + ')'); break; case 'down': newPosition = {top: currentPosition.top + 50, left: currentPosition.left}; character.css('background-image', 'url(' + (isTransformed ? 'img/player1_big.gif' : 'img/player1.gif') + ')'); break; }
// 检查新位置是否超出屏幕边界
var screenWidth = $(window).width();
var screenHeight = $(window).height();
var characterWidth = character.width();
var characterHeight = character.height();
if(newPosition.left < 0 || newPosition.left > screenWidth - characterWidth || newPosition.top < 0 || newPosition.top > screenHeight - characterHeight){
// 新位置超出屏幕边界,不执行移动操作
return;
}
character.animate(newPosition, 200);
checkTreasure();
}
原文地址: https://www.cveoy.top/t/topic/bLS2 著作权归作者所有。请勿转载和采集!