gpt4 book ai didi

java - 坦克游戏 Action

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:44:06 25 4
gpt4 key购买 nike

我正在制作 tankAtari tank game这样的游戏我遇到了一些麻烦。我正在尝试制作 enemy's tank move towards the player's tank但它can't move diagonally因为玩家也不允许这样做。但是,按照我的实现方式,当与 x 轴和 y 轴的距离彼此相等时,它会沿对角线方向移动。有没有一种方法可以让它在改变方向后被迫朝一个方向移动一段时间?这样做的方法是compare its x and y values与玩家的坦克(正在传递的坦克)和四个案例是关于 x-component is bigger than y 的。是在 right or left 上吗? , 如果 y-component is bigger than xabove or below玩家的坦克。感谢您的帮助!

public void enemyMove(Tank t) {
if ( Math.abs(getX() - t.getX()) >= Math.abs(getY() - t.getY()) && getX() > t.getX() )
goLeft();
else if ( Math.abs(getX() - t.getX()) > Math.abs(getY() - t.getY()) && getX() < t.getX() )
goRight();
else if ( Math.abs(getX() - t.getX()) <= Math.abs(getY() - t.getY()) && getY() > t.getY() )
goUp();
else if ( Math.abs(getX() - t.getX()) < Math.abs(getY() - t.getY()) && getY() < t.getY() )
goDown();

setX(getX() + dx);
setY(getY() + dy);
}

public void goUp() {
dx = 0;
dy = -1;
}

public void goDown() {
dx = 0;
dy = 1;
}

public void goLeft() {
dx = -1;
dy = 0;
}

public void goRight() {
dx = 1;
dy = 0;
}

最佳答案

您可以使用曼哈顿距离并找到中位数,然后在两个方向上移动水箱。

关于java - 坦克游戏 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29712681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com