马上要过年了,咱们这次来做一个特别的,用粒子系统实现烟花效果。有的使用过Qt Quick粒子系统的小伙伴可能会说,一个爆炸效果有什么好做的,几行代码就实现了。但是如果要完整呈现烟花的发射爆炸整个过程,其实还是要费点功夫的,下面先来看效果图。
其实这个效果不是很好,建议大家看看下面的视频演示(有声音的哦)。
开发环境:Win 7 + Qt 5.12.0
首先实现发射效果
新建空的Qt Quick Application,完成后将main.qml文件内容更改如下:
这里我们创建了一个ImageParticle,然后使用发射器在上方一个弧度里面发射粒子,这样确保烟花是向上发射的。下面是运行效果。
添加一个冒烟小尾巴
为了实现烟花发射过程中留下的烟雾轨迹,我们使用TrailEmitter来实现这种跟随效果。在ParticleSystem对象中继续添加如下代码:
下面是运行效果(睁大眼睛仔细看):
实现爆炸效果
烟花发射到空中是需要爆开的,下面添加爆炸效果:
不过这样添加的代码并不能让它在对应的点位爆炸,我们还需要进行一下特殊的处理来获取前面粒子发射到空中的位置,继续添加下面的代码:
这里使用了Affector影响器来获取发射过来的粒子位置,然后在这个位置进行爆炸,这样就实现了我们想要的效果,看看下面的动图,其实黑色背景也挺漂亮的。
化腐朽变神奇
很多时候腐朽离神奇只差一张背景图,如果还是不行,就再加上一个音效。我们在根对象Window中,ParticleSystem对象定义前添加如下代码:
然后在Affector的for语句最后添加一行代码来播放音效:
现在可以运行程序查看效果了。
结语
谨以此程序祝愿所有支持yafeilinux的朋友们春节快乐!
领取专属 10元无门槛券
私享最新 技术干货