瓶子倒水方案实践-预告篇
1. 前言
-
上周有一个面试,主要玩法是瓶子倒水。面试官当场问起了,这个倒水的效果怎么实现,问的很细。当时,我只依稀记得论坛上面有文章介绍过一些,但我没有看过。我回答的并不好,只记得回答了,要用mask,然后根据角度,按比例减少各个颜色的水面高度。
-
面试最后,面试官说,可以找hr要素材,自己做做效果看看,也算是技术题。
-
虽然有点白piao的嫌疑,但自己对这个也有点兴趣。
-
参考游戏
-
微信游戏-《玩的这么水》
-
《magic sort》游戏参考效果如下:
-
2. 现有资料(资料搜集)
-
论坛里面的相关文章
-
论坛外的文章
3. 已有的完美实现方案一
-
看它的视频,感觉挺完美的,不知道是不是作者视频录制软件的bug,发现下面这段不是很自然。
-

-
在上面这段倒绿色水的过程中,中间有一段时间,笔者感觉绿色水平面似乎有上升一点,这可能是作者视频录制软件的bug,也可能是感觉不对,你们觉得呢?
-
总体来说,这个感觉已经无可挑剔了,还带关卡编辑器。
-
有没有买过这个的同学说说买后感?
4. 已有的完美实现方案二
-
这篇文章新鲜热辣,发表日期为2025-08-17
-
按照这篇文章的技术,其实主要是spine动画的制作,程序的代码应该比较少。难点应该在spine的制作。
5. 讨论
-
根据第2点的相关资料(论坛内外的文章),其实这些方案,都只适合下图中宽口的情况,对于窄口的情况,似乎不太合适。
-

-
根据前言中的效果动图,瓶子可能存在以下几种角度。如果非要实现最后第6个角度,会增加复杂度。
-
微信游戏《玩的这么水》当中,似乎也没有做上述第6个角度的效果,如下:
6. 方案确定和已经实现的效果
-
本实践没有选择上述第2点所用的方案,因为我要做的是窄口的瓶子。
-
上述第3点的方案一,不太了解技术细节,想用也用不了。
-
上述第4点的方案二,不会spine,而且spine要钱,所以不用这个方案。
-
经过两天的努力(一天搜集资料,确定方案,一天实现demo),这是一种全新的方案,已经实现了下面的效果,感觉还行,有使用shader。
-
下面是四种颜色的倒水过程
-

-
下面是比较完整的倒水的过程






