gpt4 book ai didi

java - 在 iphone 或 Java 上实现像 Scorched Earth Game 这样的地形破坏

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:04:36 26 4
gpt4 key购买 nike

我正在寻找一个示例,说明如何实现您在焦土等游戏或 iphone 上看到的 2D 地形破坏 iShoot .

我正在寻求实现一款需要制作可破坏地形并使用 OpenGL(Java 中的 LWJGL)并在 iPhone 上使用 OpenGL ES 进行渲染的游戏。

alt text
(来源:vintagecomputing.com)

最佳答案

我记得,在 Worms 中他们使用了两个图像;带有颜色的“漂亮”地形,以及纯黑色和白色的蒙版地形。始终在掩码上进行命中检测。

如果您真的希望地形像 Tank Wars 中那样塌陷,您需要遍历图像的每一列并让它搜索地形和运动场底部之间的间隙。如果检测到任何间隙,请将间隙上方的地形向下移动到您的列中可能的最低点。

一个简单的例子可以用一个数组来完成,其中 1 代表坚实的地形,0 代表空旷的空间。在这种情况下,我将数组的左侧设置为地面,元素 [0] 将在地面上:

[1,1,1,1,1,1,0,0,0,0]

让我们假设地形从侧面被击中并打了一个洞:

[1,1,0,0,1,1,0,0,0,0]

现在您会在另一 block 地形上方留下一 block 漂浮的地形。要使 float 地形坍塌,请遍历数组,跟踪找到 0(空白空间)的第一个位置。然后,当您继续迭代时,一旦发现 1(地形),只需将 1 移动到 0 所在的位置。通过从旧的 0 位置 + 1 迭代来重复该过程。

[1,1,1,0,0,1,0,0,0,0]

[1,1,1,1,0,0,0,0,0,0]

这是基本方法,不是最有效的方法。例如,同时向下移动间隙上方的所有地形索引会快得多。

编辑:

正如第一条评论所述,对列表进行排序甚至更容易。我保持原样不变,因为它有助于解释坍塌地形背后的实际原理。

关于java - 在 iphone 或 Java 上实现像 Scorched Earth Game 这样的地形破坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/843718/

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