Qt Quick里的粒子系统

    Qt Quick提供了一个粒子系统,提供了四种主要的 QML 类型:

  • ParticleSystem ,粒子系统,它维护一个粒子系统相关的 Emitters 、 Painters 、 Affectors ,Emitters 、 Painters 、 Affectors 要想一起玩儿,就得指定同一个 ParticleSystem。 ParticleSystem
  • Painters , 它负责渲染一个粒子。ParticlePainter 是基类, CustomParticle 、 ImageParticle 、 ItemParticle 是 Qt Quick 内置的三种粒子,都是 ParticlePainter 的派生类。
  • Emitters ,发射器,可以在给定的区域内突突突地发射逻辑粒子。具体的类为 Emitter 。
  • Affectors , 效果器,通过改变发射出去的逻辑粒子的属性来产生特效。 Qt Quick 内置了 Age 、 Gravity 、Friction 、 Attractor 等等效果器。

吹泡泡

    小孩子很喜欢吹泡泡,有手动的,拿个形似放大镜的玩意儿在泡泡液里蘸一下,嘟起小嘴一吹,五彩缤纷的泡泡就漫天飞舞了。还有一种泡泡机,自动的,形状跟枝枪似的,有个开关,按着不放,它就不停的发射泡泡。我们的示例就模仿吹泡泡的效果。

    要使用粒子系统,得引入粒子模块:

import QtQuick.Particles 2.0

    ParticleSystem 、 Emitter 、 ImageParticle 、 ItemParticle 等等都在 Particles 这个模块里。

    好啦,创建一个 Qt Quick App 项目,加入一个泡泡图片,如下图:



    然后就是 main.qml 了:

import QtQuick 2.2
import QtQuick.Window 2.1
import QtQuick.Particles 2.0

Window {
    visible: true;
    width: 600;
    height: 400;
    color: "lightblue";
    id: root;

    Rectangle {
        id: target;
        color: "transparent";
        width: parent.width/2;
        height: 100;
        anchors.top: parent.top;
        anchors.right: parent.right;
        anchors.margins: 4;
    }

    ParticleSystem {
        id: particleSystem;
    }

    Emitter {
        id: emitter;
        system: particleSystem;

        anchors.left: parent.left;
        anchors.bottom: parent.bottom;
        width: 80;
        height: 80;

        size: 20;
        endSize: 80;
        sizeVariation: 10;
        emitRate: 20;
        lifeSpan: 4000;
        lifeSpanVariation: 200;
        velocity: Targ
  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

foruok

你可以选择打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值