这种下雨效果是怎么做的?求思路
小伙看你根骨奇佳,潜力无限,来学PHP伐。
在Canvas游戏中,针对这种场景,其实采用的最优化的方案进行的,因为有雨或者没雨都不是游戏的关键,我们也不是游戏引擎,所以一般这么做,从简单到复杂:
使用其他工具,比如PS、AE,让美术师绘制一个全屏下雨动画图片(注意是全屏),然后将动画导出成1帧1帧的PNG图片使用动画控件,绘制到当前场景中,一帧一帧的播放即可
使用粒子系统生成,但是粒子比较消耗CPU,除非用在一些关键的物件,对于这种锦上添花的效果还真没意义
针对3D游戏,比如Asphalt等,会专门研发(或购买)水滴引擎,让水滴有反弹、融合等自然效果,当然,也可以用贴图,只在屏幕表面下,而非场景内下。
2D游戏一般都是方案1
所以类似题主提到的这种场景,应该是贴图,一张一张的贴,效率也高,反正雨滴在表现上循环播放也合理。
如果是有游戏引擎的话应该是用了粒子吧。
用的png做好的局部下雨图片,然后代码控制图片效果,亲测
粒子效果每个雨滴是一个粒子,粒子包含静态图片或若干帧的动画每个粒子有自己的坐标和2维速度,以及生命周期随着时间变化更改坐标,动画帧数,就是下雨效果了
当然,下到屏幕下面就重新随机一个坐标和速度,从屏幕上方放进来。
这里有雪花的效果,可以研究一下源码https://github.com/jinatonic/...
用svg 做吧。具体请自行百度
做一个一滴水的落下移动动画,然后循环整个屏幕的宽高,随机坐标点生成这个动画
在Canvas游戏中,针对这种场景,其实采用的最优化的方案进行的,因为有雨或者没雨都不是游戏的关键,我们也不是游戏引擎,所以一般这么做,从简单到复杂:
使用其他工具,比如PS、AE,让美术师绘制一个全屏下雨动画图片(注意是全屏),然后将动画导出成1帧1帧的PNG图片
使用动画控件,绘制到当前场景中,一帧一帧的播放即可
使用粒子系统生成,但是粒子比较消耗CPU,除非用在一些关键的物件,对于这种锦上添花的效果还真没意义
针对3D游戏,比如Asphalt等,会专门研发(或购买)水滴引擎,让水滴有反弹、融合等自然效果,当然,也可以用贴图,只在屏幕表面下,而非场景内下。
2D游戏一般都是方案1
所以类似题主提到的这种场景,应该是贴图,一张一张的贴,效率也高,反正雨滴在表现上循环播放也合理。
如果是有游戏引擎的话应该是用了粒子吧。
用的png做好的局部下雨图片,然后代码控制图片效果,亲测
粒子效果
每个雨滴是一个粒子,粒子包含静态图片或若干帧的动画
每个粒子有自己的坐标和2维速度,以及生命周期
随着时间变化更改坐标,动画帧数,就是下雨效果了
当然,下到屏幕下面就重新随机一个坐标和速度,从屏幕上方放进来。
这里有雪花的效果,可以研究一下源码
https://github.com/jinatonic/...
用svg 做吧。具体请自行百度
做一个一滴水的落下移动动画,然后循环整个屏幕的宽高,随机坐标点生成这个动画