【发布时间】:2016-08-04 17:32:53
【问题描述】:
我在 Tron Lightbike 上。我想去一个点,但我只能做 90 度转弯。这可以防止像这样的线条形状: 并且只允许这样的行:
存储这些移动我有一个 Queue 实现 (FIFO),它将移动存储为 Integers。
UP: 0
RIGHT: 1
DOWN: 2
LEFT: 3
我有敌人的 X 和 Y 位置,我也有我的 X 和 Y 位置。我想画一条从我到敌人的所有点都连接(没有对角线)的线,并将方向数字存储在我的Queue中。
这种线的生成方式是什么?
【问题讨论】:
-
我相信你必须定义每次击中时的绘图行为。因此,假设您有一些网格并说您在 [2][3],并且您点击 UP,那么您必须将您的位置更新为 [2][4],然后在该位置绘制一个矩形。至少这就是我将如何在 JavaFX 中实现类似的东西
-
@SomeStudent 我没有画线,我正在尝试用移动方向填充队列,使线尽可能笔直。
-
我想类似的逻辑仍然适用?将移动命令添加到所述队列?所以你说你知道你的位置,你知道你的敌人。然后说你在[2][3],敌人在[1][7],你可以向右做4步,向下1步;除非我误会了。您的方向将仅更新您的 X 或 Y,创建对角线的唯一方法是您的移动将同时更新两个位置。由于是90度转弯,一次只更新一个位置;至少我是这么看的
-
@SomeStudent 我知道如何从队列中填充/读取,并且我知道我可以通过直接向上然后直接向右到达那里,但我正在尝试以看起来像直线的方式进行行。
-
所以你想做一堆近似直线的小动作。您可能需要Brezenham's line algorithm 之类的东西来计算点,然后根据您的 90 度转弯限制进行小幅调整。这个问题可能对你有帮助:stackoverflow.com/questions/4672279/…
标签: java arrays algorithm matrix line