1

我希望对我的 2D java 游戏的伪代码有所帮助,

在此处输入图像描述

怪物(橙色球)通过路径坐标(点)沿着黑线运行:

    if(i.monsterx < i.chasePoint.getX()){
        i.monsterx++;
    }else if(i.monstery < i.chasePoint.getY()){
        i.monstery++;
    }else if(i.monsterx > i.chasePoint.getX()){
        i.monsterx--;
    }else if(i.monstery > i.chasePoint.getY()){
        i.monstery--;
    }

每次怪物到达“追逐点”时,它都会获得一个新的追逐点,等等......

黑色方块应该看起来像是在射击怪物,绿色圆圈是射击场。但是我如何决定子弹的去向呢?我更喜欢黑色方块在前面射击暴徒,但是由于暴徒可以减速/眩晕,因此没有特定的顺序,我怎么知道哪个暴徒在前面最长?

4

1 回答 1

1

最简单的解决方案是让每个怪物跟踪它的行进距离(而不是它的生存时间;由于不同的速度、令人震惊等),然后瞄准行进距离最长的那个。假设黑色铁轨没有改变,这将允许最接近末端的怪物成为目标。

如果黑色铁轨确实发生了很大变化(由于放置了新塔),那么请询问生成黑色铁轨的对象(并在放置塔时重新生成它)来标记特定追逐点还剩下多少块才能到达终点(它已经知道路径,所以这应该足够简单;我假设您正在使用 A* 算法或类似的算法来生成此路径;如果是这样,这个数字几乎只是超出了算法)。然后怪物可以在它的chasePoint 更新中被赋予这个值。大炮然后询问范围内的所有怪物他们必须走多远才能到达终点并瞄准数字最小的怪物

于 2013-07-05T09:35:39.330 回答