zoukankan      html  css  js  c++  java
  • QML粒子系统

    一、概念

    粒子系统主要有四个QML类型,分别是ParticleSystem、Emitter、ParticlePainter和Affector。

    ParticleSystem:是粒子系统,剩余几个类型需要绑定同一个粒子系统;

    Emitter:粒子发射器;

    ParticlePainter:粒子可视化方式;

    Affector:控制已发射粒子的参数。

    需要注意ParticlePainter有3个子类:

    二、例子一:使用图片作为的效果粒子

    1、下载star.png【例子并为加入到资源中】

    2、代码1

    import QtQuick 2.5
    import QtQuick.Particles 2.0
    
    Rectangle {
        id: root
         480; height: 160
        color: "#1f1f1f"
    
        ParticleSystem {
            id: particleSystem
        }
    
        Emitter {
            id: emitter
            anchors.centerIn: parent
             160; height: 80
            system: particleSystem
            emitRate: 10
            lifeSpan: 1000
            lifeSpanVariation: 500
            size: 16
            endSize: 32
        }
    
        ImageParticle {
    //        source: "assets/particle.png"
            source: "assets/star.png"
            system: particleSystem
        }
    }

    效果

     3、代码2:加一点效果,颜色、旋转

    import QtQuick 2.5
    import QtQuick.Particles 2.0
    
    Rectangle {
        id: root
         480; height: 160
        color: "#1F1F1F"
    
        ParticleSystem {
            id: particleSystem
        }
        ImageParticle {
            source: "assets/star.png"
            system: particleSystem
    
            color: '#FFD700'        //粒子初始颜色为金色
            colorVariation: 0.2     //不同粒子颜色变化范围+/-20%
    
            rotation: 0             //粒子初始角度
            rotationVariation: 45   //不同粒子初始角度+/-45
    
            rotationVelocity: 15    //粒子每秒旋转45度
            rotationVelocityVariation: 15   //不同粒子每秒旋转角度+/-15
    
            entryEffect: ImageParticle.Scale    //粒子入场效果为缩放
        }
        Emitter {
            id: emitter
            anchors.fill: parent
            system: particleSystem
            lifeSpan: 8000
            size: 32
            endSize: 16
        }
    }

    代码3:加一点效果,移动

    import QtQuick 2.5
    import QtQuick.Particles 2.0
    
    Rectangle {
        id: root
         480; height: 240
        color: "#1F1F1F"
    
        ParticleSystem {
            id: particleSystem
        }
    
        ImageParticle {
            source: "assets/star.png"
            system: particleSystem
            color: '#FFD700'
            colorVariation: 0.2
            rotation: 0
            rotationVariation: 45
            rotationVelocity: 15
            rotationVelocityVariation: 15
            entryEffect: ImageParticle.Scale
        }
    
        Emitter {
            id: emitter
            anchors.left: parent.left
            anchors.verticalCenter: parent.verticalCenter
             1;
            height: 1
            system: particleSystem
            emitRate: 10
            lifeSpan: 6400
            lifeSpanVariation: 400
            size: 32
            velocity: TargetDirection {
                targetItem: target1
                targetVariation: 20
                magnitude: 50
            }
            acceleration: TargetDirection {
                targetItem: target2
                targetVariation: 20
                magnitude: 50
            }
        }
    
        Rectangle {
            id: target1
             40; height: width
            radius: width/2
            color: '#FF0000'
            opacity: 0.5
            MouseArea {
                anchors.fill: parent
                drag.target: target1
            }
        }
    
        Rectangle {
            id: target2
             40; height: width
            radius: width/2
            color: '#00FF00'
            opacity: 0.5
            MouseArea {
                anchors.fill: parent
                drag.target: target2
            }
        }
    }

     

  • 相关阅读:
    SQL exist
    Mac 加密软件
    appcon 图标打包
    启动页面
    获取第三方的授权
    实现一个简单但是好看的滑动栏
    实现聊天界面的代码
    简单的设置圆形按钮
    自己搭建服务端前透析
    A1056Mice and Rice (25分)
  • 原文地址:https://www.cnblogs.com/judes/p/15672731.html
Copyright © 2011-2022 走看看