Where is my water 游戏算法

过年把Where is my water完了一遍,对这个游戏的创意和算法有一点赞叹.
[img]http://apkcube.com/wp-content/uploads/auto_save_image/2012/01/043801pBM.jpg[/img]
[img]http://apkcube.com/wp-content/uploads/auto_save_image/2012/01/043804rfL.jpg[/img]
于是琢磨了一下游戏算法上的实现,最大的难点是对水流、毒水、绿色的[不知道什么东西],这三种液体的处理,以及液体与各种物体之间的碰撞.
底层一定是一个物理引擎,而对各种不同的液体,可能有属性上的不同,比如粘性[可以在碰撞判断时,反弹一定影响,粘性大,反弹力度小,如果撞击力度过小,则直接粘在一起],伸缩性[用来判断边界,与其他物体之间碰撞检测,用于进行图形的绘制,如果伸缩性大,外层碰撞则绘制整体的水,如果内层碰撞则挤压],有摩擦力属性,等

比较头疼的就是对水流的绘制,如果没滴水是一个图形,如何绘制能使得多个水底聚在一起时,显示成一片水,而不是一些水滴.
我的思路是借助碰撞检测的数据,对于水滴有2层外壳,外层负责绘制,内层负责碰撞检测,不能重叠,外层可以重叠,在周期绘制时,对于水滴的数组进行遍历,外层重叠的部分,mask水,外层不重叠的部分,直接绘制水滴,不透明.对于mask的部分,进行背景的虚化及活动处理,产生液体活动的影像..

-----------------------------------------
个人思路,有没有回帖讨论的同学. :wink:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值