亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何判斷玩家是否距離敵人 2 個方格

如何判斷玩家是否距離敵人 2 個方格

倚天杖 2022-06-05 11:00:23
簡單的游戲問題第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;

}


查看完整回答
反對 回復 2022-06-05
  • 1 回答
  • 0 關注
  • 112 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號