16. QML中的一些粒子特效

1.说明

在使用unity开发游戏时,都会涉及到一些特效的开发。实际上在QML中也提供了一些可以做特效的控件,称之为粒子系统。本篇博客主要记录一些使用粒子做特效的方式。
特效–火焰效果:
在这里插入图片描述

2. 案例汇总

2.1 案例1

效果展示:

粒子特效1

相关代码:

import QtQuick 2.2
import QtQuick.Window 2.1
import QtQuick.Controls 2.0
import QtGraphicalEffects 1.0
import QtQuick.Particles 2.0ApplicationWindow {id:rootvisible: truewidth: 640height: 480title: qsTr("Hello World")Rectangle {id:recwidth: 300height: 300anchors.centerIn: parentcolor: "black"Button {text: "start"y: 0onClicked: { particles.start() }}Button {text: "pause"y: 70onClicked: { particles.pause() }}Button {text: "resume"y: 140onClicked: { particles.resume() }}Button {text: "stop"y: 210onClicked: { particles.stop() }}ParticleSystem {id:particles; running: false}ItemParticle {system: particlesdelegate: Rectangle {id:rectdelwidth: 10height: 10radius: 10color: "red"}}Emitter {system: particlesx:100width: 200velocity: PointDirection { y:300; yVariation: 100 }}}
}
2.2 案例2 – 雪花特效

效果展示:

雪花特效

相关代码:

import QtQuick 2.2
import QtQuick.Window 2.1
import QtQuick.Controls 2.0
import QtGraphicalEffects 1.0
import QtQuick.Particles 2.0ApplicationWindow {id:rootvisible: truewidth: 640height: 480title: qsTr("Hello World")Rectangle {id:recwidth: 300height: 300anchors.centerIn: parentParticleSystem {anchors.fill: parentImageParticle {sprites: Sprite {	//此处用的是sprite图像--存储了图片每一帧的不同姿态name: "snow"source: "qrc:/image/imgs/snowflake.png"frameCount: 51frameDuration: 40frameDurationVariation: 8}colorVariation: 0.8entryEffect: ImageParticle.scale}Emitter {emitRate: 20lifeSpan: 3000velocity: PointDirection {y:80; yVariation: 40;}acceleration: PointDirection {y:4}size: 20sizeVariation: 10width: parent.widthheight: 100}}}
}
2.3 案例3 – 火焰特效

效果展示:

火焰特效

相关代码:

import QtQuick 2.2
import QtQuick.Window 2.1
import QtQuick.Controls 2.0
import QtGraphicalEffects 1.0
import QtQuick.Particles 2.0ApplicationWindow {id:rootvisible: truewidth: 640height: 480title: qsTr("Hello World")Rectangle {anchors.fill: parentcolor: "#222222"ParticleSystem {anchors.fill: parentImageParticle {groups: ["smoke"]color: "#11111111"source: "qrc:/image/imgs/butterfly.png"}ImageParticle {groups: ["flame"]color: "#11ff400f"colorVariation: 0.1source: "qrc:/image/imgs/butterfly.png"}Emitter {anchors.centerIn: parentgroup: "flame"emitRate: 120lifeSpan: 1200size: 20endSize: 10sizeVariation: 10acceleration: PointDirection { y:-40 }velocity: AngleDirection { angle: 270; magnitude: 20; angleVariation: 22; magnitudeVariation: 5 }}TrailEmitter {group: "smoke"follow: "flame"emitRatePerParticle: 1lifeSpan: 2400lifeSpanVariation: 400size: 16endSize: 8sizeVariation: 8acceleration: PointDirection { y:-40 }velocity: AngleDirection { angle: 270; magnitude: 40; angleVariation: 22; magnitudeVariation: 5 }}}}
}
2.4 案例4 – 粒子组间过渡

效果展示:

粒子组过渡

相关代码:

import QtQuick 2.2
import QtQuick.Window 2.1
import QtQuick.Controls 2.0
import QtGraphicalEffects 1.0
import QtQuick.Particles 2.0ApplicationWindow {id:rootvisible: truewidth: 640height: 480title: qsTr("Hello World")Rectangle {anchors.fill: parentcolor: "#222222"ParticleSystem {anchors.fill: parentParticleGroup {name: "unlit"duration: 1000to: {"lighting": 1, "unlit": 5}ImageParticle {source: "qrc:/image/imgs/butterfly.png"color: "#2060160f"colorVariation: 0.1}Emitter {height: parent.height / 2emitRate: 4lifeSpan: 3000size: 24sizeVariation: 4velocity: PointDirection {x: 120; xVariation: 80; yVariation: 50}acceleration: PointDirection {y: 120}}}ParticleGroup {name: "lighting"duration: 200to: {"lit": 1}}ParticleGroup {name: "lit"duration: 2000TrailEmitter {group: "flame"emitRatePerParticle: 50lifeSpan: 200emitWidth: 8emitHeight: 8size: 24sizeVariation: 8endSize: 4}}ImageParticle {groups: ["flame", "lit", "lighting"]source: "qrc:/image/imgs/butterfly.png"color: "#00ff400f"colorVariation: 0.1}}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/499151.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文速览深度伪造检测(Detection of Deepfakes):未来技术的守门人

一文速览深度伪造检测(Detection of Deepfakes):未来技术的守门人 前言一、Deepfakes技术原理卷积神经网络(CNN):细致的艺术学徒生成对抗网络(GAN):画家与评审的双重角色…

数仓模型设计方法论

在当今大数据时代,数据已经成为企业最重要的资产之一。而数据仓库作为企业数据管理和分析的核心基础设施,其设计方法论对于企业的数据治理和决策分析至关重要。本文将探索数仓模型设计的方法论,帮助读者更好地理解和应用数仓模型设计。 一、…

LeetCode 刷题 [C++] 第102题.二叉树的层序遍历

题目描述 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 题目分析 题目中要求层序遍历二叉树,即二叉树的广度优先搜索(BFS)。BFS一般使用队列的先入先出特性实现&#…

服了,阿里云服务器价格和腾讯云1元之差,如何选择?

2024年阿里云服务器和腾讯云服务器价格战已经打响,阿里云服务器优惠61元一年起,腾讯云服务器62元一年,2核2G3M、2核4G、4核8G、8核16G、16核32G、16核64G等配置价格对比,阿腾云atengyun.com整理阿里云和腾讯云服务器详细配置价格表…

一图总结:华为销售体系(铁三角组织LTC流程)

《华为铁三角工作法》阅读了多遍,花了些时间整理了一张图对本书的框架性总结,从流程(LTC)、组织(铁三角)、激励和管理三个大方面概览华为销售体系。 核心是一靠流程,二靠团队,而前提…

RT-Thread studio上创建一个STM32F103的CAN通讯功能

前言 (1)如果有嵌入式企业需要招聘湖南区域日常实习生,任何区域的暑假Linux驱动实习岗位,可C站直接私聊,或者邮件:zhangyixu02gmail.com,此消息至2025年1月1日前均有效 (2&#xff0…

【MySQL】MVCC机制

引入问题 首先看下面这张图,假如说一条数据经过了事务 2、3、4,到事务 5 的时候,进行两次查询,那这两次查询分别查询的是哪个事务版本的记录呢? 这就是我们要解决的问题,那么MVCC机制也就是为了解决这个问…

力扣hot100题解(python版29-32题)

29、删除链表的倒数第N个结点 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5]示例 2: 输入:head [1], n 1 输出&a…

金三银四,自动化测试面试题精选【美团二面】

面试一般分为技术面和hr面,形式的话很少有群面,少部分企业可能会有一个交叉面,不过总的来说,技术面基本就是考察你的专业技术水平的,hr面的话主要是看这个人的综合素质以及家庭情况符不符合公司要求,一般来…

Decision Transformer

DT个人理解 emmm, 这里的Transformer 就和最近接触到的whisper一样,比起传统Transformer,自己还设计了针对特殊情况的tokens。比如whisper里对SOT,起始时间,语言种类等都指定了特殊tokens去做Decoder的输入和输出。 DT这里的作为输入的Tokens由RL里喜闻乐见的历史数据:…

安秉源代码加密,不仅可以正常加密,对编译调试无任何影响

源代码防泄密对于很多企业来讲都在使用,特别是在广东一些做智能制造的企业,这些企业在很早就意识到源代码防泄密的重要性,很多企业采用加密的方式对企业的源代码进行加密,也采用了相对应的加密软件,但是在使用一些加密…

nodejs配置环境变量后不生效(‘node‘ 不是内部或外部命令,也不是可运行的程序或批处理文件)

一、在我们安装Node.js后,有时候会遇到node命令不管用的情况,关键是在安装时候已经添加配置了环境变量,向下面这样 但是还是不管用,这是因为环境变量配置不正确,权重不够,或者是命令冲突导致,解…