简单的游戏问题第1部分我正在编写一个简单的 JavaScript 游戏(简单易玩,不一定要为我编写代码)。我需要弄清楚龙是否距离玩家 2 步(或更少)。龙可以对角移动。所以在我的形象中,D1不是两步之遥,但是,D2是两步之遥。我想我让这比实际上更难。var player = { x: 4, y: 2}var dragon1 = { x: 1, y: 3}var dragon2 = { x: 6, y: 3}function isTwoMovesAway(player, dragon){ // I JUST DON'T KNOW HOW TO MATHEMATICALLY // FIGURE THIS OUT because sometimes I end // end up with a negative number. xDiff = player.x - dragon.x; yDiff = player.y - dragon.y; numSquaresAway = [ insert your magic here ]; return (numSquaresAway<=2) ? true: false; }第2部分这个问题的第二部分是,如果龙在追赶玩家,我如何确定他应该移动到哪个方格?我希望龙走最短的路线。function moveDragon(){ pX = player.x; pY = player.y; dX = dragon1.x; dY = dragon1.y; // In this case, I would expect the Dragon to move // to either 2,2 or 2,3 // Is this just a matter of adding to X ?? Dragon1.x = [ YOUR MATH HERE ]; Dragon1.y = [ YOUR MATH HERE ];}感谢您的关注。任何意见,将不胜感激。
1 回答
慕无忌1623718
TA贡献1744条经验 获得超4个赞
我需要弄清楚龙是否距离玩家 2 步(或更少)
您可以这样看:如果距离超过 2 次,则 X 坐标相差 3+,或者 Y 坐标相差 3+,或者两者都有。或者,两个差值必须小于等于 2。所以函数可以是:
function isTwoMovesAway(player, dragon){
return Math.abs(player.x - dragon.x) <= 2 && Math.abs(player.y - dragon.y) <= 2;
}
如果龙在追赶玩家,我如何确定龙应该移动到哪个方格?
确定从龙的坐标到玩家坐标的方向是:更大、更少或相同。如果更大,加1;如果小于,则减 1;如果相同,则添加 0。对 X 和 Y 坐标执行此操作。
function moveDragon(){
const xDiff = player.x > dragon.x
? 1
: player.x < dragon.x
? -1
: 0;
const yDiff = player.y > dragon.y
? 1
: player.y < dragon.y
? -1
: 0;
dragon.x += xDiff;
dragon.y += yDiff;
}
添加回答
举报
0/150
提交
取消