我正在使用canvas
构建游戏。
我有在游戏初始化时随机生成的地形。通过游戏中的武器可以破坏地形。
Here is an example of the terrain I want to generate
生成此2D地形时......
x
坐标存储峰值,还是存储每个像素的像素?答案 0 :(得分:2)
我认为您可以安全地将地形存储在2D数组中。拥有像3000x1000这样大小的bool可能看起来很可怕,但是请放心,遍历这样的阵列仍然非常快。您可以遍历整个阵列10次并保持平滑的动画速度。
答案 1 :(得分:1)
Yey,Scorched Earth!据我所知,你甚至可以在原始表面下方轰炸掉圆形的地形(跳跃!)。然后地形将崩溃并填补空白。因此,仅存储表面的多边形顶点坐标是不够的。每像素阵列方法似乎是一个更好的主意。
重绘问题仍然很困难。我想以30fps重绘整个画布是不可行的。也许你只能重绘受武器影响/破碎的像素。
答案 2 :(得分:0)
假设您将地形分割为子方形。
在:
+---------------------------+
| ______ / |
| ___ / \ / |
| / \__/ \___/ |
|-/ |
| |
| |
| |
+---------------------------+
后:
+---------------------------+
| | | ___|__ | | |
| _|_ |/ | \ | /| |
| / | \__/ | \|__/ | |
|-/--|----------------------|
| | | | | | |
| | | | | | |
| | | | | | |
+---------------------------+
这些小节可以有三种状态:
这应该会给你一个不错的优化,而不会严重牺牲代码的可读性。