根据瓷砖与玩家之间的距离更改瓷砖的坚固性

时间:2019-04-11 07:36:37

标签: java methods boolean

我正在创建基于回合的平铺游戏(采用龙与地下城的风格),但是在创建基于回合的系统本身时却很挣扎。 当播放器开始其回合(通过按“开始回合”按钮)时,代码将计算播放器与阵列中所有图块之间的距离。 如果距离超过一定值,我想将图块的实体度更改为实体,否则,让他们移动。本质上是限制玩家在一圈内可以移动多远。我不确定我是否以最佳方式实现此目标,因为我可以将其作为指向和点击系统,而不是使用键盘输入-但无论如何

它现在的工作方式是在地图类的tick方法中,我们检查是否已按下“开始移动”按钮,然后调用Tile Checker方法计算出距离。

似乎成功地计算了距离,但是现在我不确定如何将信息发送到另一个类,然后使用该值来更改确定图块是否为Solid的布尔值。

我已经具有碰撞功能,并且将Tile的各个类中的“ isSolid”方法更改为true将使其牢固,以便玩家无法通过它。我只是不知道如何执行有关阵列的操作。

这是我第一次问一个问题,所以不能完全确定我应该包括的所有代码,因此,这是指向整个项目的github链接: https://github.com/Chadface/D-D-Simulator

我试图以几种不同的方式来实现这一点,例如尝试检查Tile类中的距离,但是我对如何与数组正确交互感到困惑

所有在我的地图课程中

    public void tick() {
        itemManager.tick();
        entityManager.tick();

        if (GameState.ButtonPressed() && !tileCheck) {
            tileChecker(distanceCalculation);
        }
    }
public void tileChecker(double distanceCalculation) {
        xPosition = entityManager.getPlayer().getX();
        yPosition = entityManager.getPlayer().getY();
        for (int y = 0; y < height; y++) {
            for (int x = 0; x < width; x++) {
                if (!getTile(x, y).isSolid()) { // only check tiles that aren't solid
                    getTile(x, y);
                    tileX = x;
                    tileY = y;
                    calculation(tileX, tileY, distanceCalculation);
                }

            }
        }
        tileCheck = true;

    }

草砖类

public class GrassTile extends Tile {

    public GrassTile(int id) {
        super(Assets.grass, id);
    }

    public boolean isSolid() {

        return false;
    }
}

0 个答案:

没有答案