流沙版俄罗斯方块Cocos能实现吗

微信截图_20240715003502
视频链接

效果上可以,性能上有难度

1赞

我的想法是, 方块是一个node object, 转化为沙子时改用cc.Graphic渲染,流子流动应该是硬算的, 从影片中判断沙子是分帧处理, 并且更新频率大约应该是十几帧。性能上再极致一点可以把沙漏与消除判定整合到WASM, 然后输出所有沙漏坐标, 然后再到cc.Graphic渲染。 沙子的刷新用cc.Graphic按坐标去填回背景色, 不要整clear再重画, 这様性能是100%跟不上的, 我觉得cc是能实现这游戏, 但对于程序员是一次数据表现分离的一次考验

可以试试直接操作ArrayBuffer,ImageData来控制像素点,

这也是一个思路, 但如果按image data的话, 每个pixel 都要输入4个数值, 而且是纯软件运算很吃cpu。 但cc.Graphic 基于h5的canvas处理的, canvas可以硬件加速运算,性能上较好。

利用类似流体引擎的计算方法,先把屏幕画好很多小格子(一个沙子一个格子),然后通过迭代进行运算。
一次迭代对每个格子用邻居的压力值来判断是否填充,填充是什么颜色。每个格子是一个任务,可以走并行计算,也可以走compute shader。
这个思路看看行不行。我看视频里面的是斜向格子。

这么巧,我刚好开发了一款,原理不难,就是性能难调