为了使精灵、boss还有其他对象在游戏中分裂开来,让它们看起来更好, 我设计了一个简单的ASCII沙盒系统。在主游戏中,符号可以绘制在任意位置。但是在沙盒中,所有的元胞被锁定在严格的格子上。这可以让视觉效果更好。
逻辑很简单:
1.当重力下降时,从下到上检查所有网格元胞。
2.如果一个元胞有符号,并且它还没有飞行,尝试让它落下。
3.首先检查下面的元胞。如果它是空的,就将符号释放到下一个元胞身上。
4.如果下面的元胞被阻塞,检查斜向上的元胞。
如果它们都空了,就随机选择一个元胞,将符号放到其中。
5. 我的沙盒有点滑溜,所以符号也可以在更陡的角度滑动。因此,我还检查了斜向上的两个元胞旁边的元胞。
如果其中一个空了,就可以将符号移到它那里。那么symbol就完成了落下。
为了让效果更好,我还添加了两个选项:加速度和自我摧毁。
加速度:
如果一个符号直接从上到下通过空的元胞,速度保持不变会看起来有点平淡。
所以我存储了每个象形的连续落下的时间,并用它来加快运动速度。
当它击中另一个符号,那个计时器就会重置。
自我摧毁:
当一个精灵进入沙盒时,有时它会以一个整体的块的形式落下,如果下面有空的空间。这不是所有情况下看到的最好看的结果。
所以我添加了一个自我摧毁的设置,即使下面有空的空间,小的象形粒子也仍然可以相互作用。在视频中我展示了不同的自我摧毁级别。
您的看法是怎样的呢?这里是Steam游戏页面。
评论 (0)