12 我是一名网络开发人员,我渴望开始编写自己的游戏。 为了熟悉起见,我canvas现在选择了JavaScript和element。 我想生成一些像焦土中的地形。 我的第一次尝试使我意识到,我不能只是随机分配y值。高峰和低谷必须有一定的理智。 我已经用Google搜索了一下,但是我找不到足够简单的东西或者使用了错误的关键字。 能否请您告诉我示例中将使用哪种算法生成某些东西,同时牢记我对游戏编程是完全陌生的(因为无论如何,2003年还是使用Visual Basic制作Breakout)? javascript procedural-generation terrain — 亚历克斯 source
18 中点位移算法正是您想要的。 该链接可以生成如下内容: 还是喜欢您的图像,取决于您使用的参数。有C源可在这里。 — 共产党鸭 source 感谢这一点,我仍然不确定如何在JavaScript中实现它,但是希望当我阅读完这篇文章后,它对我来说变得更加清晰。 — alex 有我刚刚编辑过的C源代码。要实现它应该不是一个太大的问题:) — The Communist Duck @共产主义鸭子谢谢,我以前涉猎过C。 — Alex @共产主义鸭子希望我在正确的轨道上 :) — alex @alex,您应该在实现中使用某种递归。当前,您仅拥有一条带有随机y分量的线,其中随机变化向右减小。 — JuhaSyrjälä11年
5 如何使用中点位移算法,然后再进行轻微的平滑处理(例如低通滤波以消除太尖的尖峰),该怎么办?此方法与焦土中的方法不同,但应提供相似的结果。 我相信焦土模拟了重力和落下的污垢。例如,您不能有太陡峭的山坡,因为否则灰尘会掉落并形成不太陡峭的斜坡。 — 朱哈·赛尔雅拉(JuhaSyrjälä) source
1 您可以使用另一种方法。您可以将许多随机生成的正弦波加在一起,然后缩放结果以适合屏幕。尽管与示例屏幕截图相比,它更平滑,甚至更人为,但实际上在实践中很容易,并且会产生一些不错的结果。 您可以在javascript中查看源代码。弄些参数以获得不同类型的地形真的很容易。 https://github.com/fmstephe/Tankwars — 弗朗西斯·斯蒂芬斯 source