1 回答
TA贡献1784条经验 获得超7个赞
有几种方法可以做到这一点。
鉴于您发布的代码,一种简单(但不是非常有效)的方法是使用 setInterval() 来运行怪物的逻辑。
一个非常简单的逻辑可以像这样工作(伪代码):
if ( monster.canMoveLeft() && player.x < monster.x ) {
monster.moveLeft()
} else if ( monster.canMoveRight() && player.x > monster.x ) {
monster.moveRight()
} else if ( monster.canMoveUp() && player.y < monster.y ) {
monster.moveUp()
} else if ( monster.canMoveDown() && player.y > monster.y ) {
monster.moveDown()
} else {
// no good choice
// either continue moving in the same direction, or choose a random
// direction if that's not possible
//
// This means you need to keep track of the monster's last direction
}
您还可以检查水平轴和垂直轴上的距离以确定先行的方向。
项目清单
添加回答
举报