Cocos2d-x初入学堂(10)-->ParticleEditor粒子编辑器

2023-05-16

欢迎转载!转载时请注明出处:http://write.blog.csdn.net/postedit/8126525

呵呵~ 上一讲,只是将粒子系统的基础知识,也有朋友问windows版的粒子编辑器,windows的粒子编辑器确实很少,不过我在网上也是收到了一款,也挺不错的...

下面就更大家简单介绍下这款软件,然后制作出一个下雪效果的步骤,肯定比test的下面好看多了...呵呵~  

1、下载:

ParticleEditor 下载地址:http://code.google.com/p/cocos2d-windows-particle-editor/downloads/list

2、介绍软件

File:save,save as(导出plist文件),new,Open 

Samples:有test里面的一些例子,暂时版本没有增加自己添加纹理进来功能...不过粒子系统有设置图片的方法,如果要求不高的话,也是可以用的...可能后面的版本作者会增加此功能

编辑器里面有说明,我就简单介绍右边的功能:

半径模式:这种只有围绕中心运动,这个下面的参数要有效

编辑器:IsBackgroundMove背景是否动,Scale缩放

大小:粒子的开始大小和结束大小

角度:粒子的运动方向...(-90)垂直朝下

生命:粒子生命

位置:设置PosVar值就可以了,SourcePosition不用管..设置资源的

纹理渲染:对于一般情况,只需要记住:“我们最常使用的CC_BLEND_SRC和CC_BLEND_DST分别对应GL_ONE和GL_ONE_MINUS_SRC_ALPHA”。

颜色:StartColor, EndColor, StartColorVar, EndColorVar这4个属性代表着粒子的初始颜色、结束颜色以及其浮动值。

重力模式:重力、速度等的设置

自旋:粒子的旋转

EmissionRate

粒子的发射速率,即每秒发射的粒子数量。

这里有一个问题,不知道算不算是bug,我给大家描述一下:

CCParticleSystem加载.plist文件时并没有读取这个EmissionRate的值。实际上,它是由粒子数量上限除以粒子生命期算出来的。


1 // emission Rate
2 m_fEmissionRate = m_uTotalParticles / m_fLife;  

有点儿说不通对不对。我为什么要在(第一个)粒子的生命期内把所有的粒子都发出去?

这是CCParticleSystem加载.plist文件的问题,临时的解决办法就是,在加载.plist文件后,再手工调用setEmissionRate设置每秒的发射量。

3、导出.plist文件,然后将其对应的图片,一同copy到新建工程的Resource文件夹下...

(注意两个文件要放在一起,要不然找不到..自然你也可以进.plist下去修改图片资源的路径,不过没有必要..放一起就好了)

4、实现下雪效果:

老样子,上传我的demo代码:

ParticleTestScene.h

#pragma once
#include "cocos2d.h"
using namespace cocos2d;
class ParticleTestScene :public CCScene
{
public:
	ParticleTestScene(void);
	~ParticleTestScene(void);
	static CCScene* scene();
};

ParticleTestScene.cpp

#include "ParticleTestScene.h"
#include "ParticleTestLayer.h"

ParticleTestScene::ParticleTestScene(void)
{
}


ParticleTestScene::~ParticleTestScene(void)
{
}

CCScene* ParticleTestScene::scene()
{
	CCScene* scene=CCScene::create();
	CCLayer* layer=new ParticleTestLayer();
	scene->addChild(layer);
	return scene;
}


ParticleTestLayer.h

#pragma once
#include "cocos2d.h"
using namespace cocos2d;
class ParticleTestLayer :public CCLayer
{
public:
	virtual void onEnter();
protected:
	CCParticleSystem*    m_emitter;
    CCSprite*            m_background;
	unsigned int m_nOrder;
};

PartileTestLayer.cpp

#include "ParticleTestLayer.h"
#include "cocos2d.h"
void ParticleTestLayer::onEnter()
{
    CCLayer::onEnter();
    //注意:如果你的层继承的是CCLayerColor,必须初始化颜色值
    /*initWithColor( ccc4(127,127,127,255) );*/

    //创建一个CCParticleSystem粒子系统
    CCNode *parent1 = CCNode::create();//创建一个父节点

    //创建一个CCParticleSystemQuad系统:每个粒子用4个点(Quad,矩形)表示的粒子系统
    CCParticleSystemQuad *emitter1 = CCParticleSystemQuad::create("pottersnow.plist");

    emitter1->setBlendAdditive(false);//是否混合

    CCSize s = CCDirector::sharedDirector()->getWinSize();

    emitter1->setPosition(ccp( s.width/2-30,    s.height/2+60));

    parent1->addChild(emitter1, 0, 1);

    addChild(parent1, 10, 1000);
}

运行效果:

哈哈~   这效果比test里面的好吧~    好了,该睡觉了....

感谢大家阅览我的博文,希望也能看到大家留下的脚印...呵呵!
如果讲述得有误,或者不对的地方,还望各位指出!


 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cocos2d-x初入学堂(10)-->ParticleEditor粒子编辑器 的相关文章

  • 用HttpPost登陆验证时,用户名和密码放在请求头部header中的处理方法,形式为Authorization: username password。

    xfeff xfeff post setHeader 34 Authorization 34 34 your token 34 这里主要是要搞清楚your token是什么 xff0c 把认证信息传递正确 xff0c 这个认证信息是通过用户
  • vs code 运行C语言并调试

    vs code 运行C语言 2022 03 19 mingw64下载地址更新 xff08 window xff09 task json文件修改launch json文件修改 更新版 xff08 window xff09 1 下载MinGW编
  • 【Http认证方式】——Basic认证

    今天在访问请求 xff1a http 192 168 2 113 8080 geoserver rest workspaces时 xff0c 浏览器弹出窗口需要输入用户名和密码 xff0c 并且 xff0c 如果不输入或者输入错误 xff0
  • 大小端介绍与分析

    1 字节序 字节序即字节的存储顺序 xff0c 如果数据都是单字节的 xff0c 那怎么存储无所谓了 xff0c 但是对于多字节数据 xff0c 比如int xff0c double等 xff0c 就要考虑存储的顺序了 字节序是硬件层面的东
  • Emgu-WPF 激光雷达研究-定位实现

    特定位置或障碍物位置定位实现 读取激光雷达数据并存储于本地作为测试数据 每一帧数据对同一障碍物的定位信息均存在偏差 所以先对需要定位的点进行数据取样 取样过程中 xff0c 遇到数据丢失 xff0c 或检测到多个障碍物 不满足障碍物生存指数
  • Jetson NX性能介绍

    NX的各个工作模式及功耗 xff1a 与其他jetson系列板卡的对比
  • 移远EC200UCN_LA 4G通信模块 OpenCPU二次开发过程中遇到的各种坑

    这里主要记录一下我在使用移远开发板进行 EC200UCN LA 4G通信模块开发中遇到的各种坑 注 xff1a Q为遇到的问题 A为问题的解决办法 T为注意事项 Q 串口demo无法正常接收和发送消息 A demo里用的UART2 xff0
  • GPS数据格式解析

    GPS数据格式解析 简介 GPS发送数据以行为单位 xff0c 数据格式如下 xff1a 信息类型 xff0c x xff0c x xff0c x xff0c x xff0c x xff0c x xff0c x xff0c x xff0c
  • 线程的sleep()方法的简单使用

    线程的sleep方法签名位 xff1a public static void sleep long millis throws InterruptException 是静态方法 xff0c 使目前正在执行的线程休眠millis毫秒 pack
  • 栈和堆的生长方向

    C 43 43 作为一款C语言的升级版本 xff0c 具有非常强大的功能 它不但能够支持各种程序设计风格 xff0c 而且还具有C语言的所有功能 我们在这里为大家介绍的是其中一个比较重要的内容 xff0c C 43 43 内存区域的基本介绍
  • mysql关于bit类型用法

    本文来源于 xff1a http www server110 com mysql 201403 7117 html Mysql关于bit类型的用法 xff1a 官方的资料如下 xff1a 9 1 5 位字段值 可以使用b 39 value
  • Ajax 简单购物车工程

    工程结构图 xff1a index jsp lt 64 page language 61 34 java 34 contentType 61 34 text html charset 61 utf 8 34 pageEncoding 61
  • Oracle scott账户被锁定,scott默认密码,sys,system默认密码

    oracle帐号scott被锁定如何解锁 具体操作步骤如下 xff1a C gt sqlplus 请输入用户名 xff1a sys 输入口令 xff1a sys as sysdba 注意 xff1a 在口令这里输入 的密码后面必须要跟上 a
  • Linux将输出放到文件中

    一 xff0c 如何把命令运行的结果保存到文件当中 这个问题太简单了 xff0c 大家都知道 xff0c 用 gt 把输出转向就可以了 例子 lhd 64 hongdi ls gt ls txt lhd 64 hongdi cat ls t
  • 理解interrupt()方法

    java interrupt 方法只是设置线程的中断标记 xff0c 当对处于阻塞状态的线程调用interrupt方法时 xff08 处于阻塞状态的线程是调用sleep wait join 的线程 xff0c 会抛出InterruptExc
  • 泛型二 泛型和数组

    数组和泛型容器有什么区别 要区分数组和泛型容器的功能 xff0c 这里先要理解三个概念 xff1a 协变性 xff08 covariance xff09 逆变性 xff08 contravariance xff09 和无关性 xff08 i
  • 浏览器缓存

    阅读目录 1 浏览器缓存基本认识 2 强缓存的原理 3 强缓存的管理 4 强缓存的应用 5 协商缓存的原理 6 协商缓存的管理 7 浏览器行为对缓存的影响 浏览器缓存 xff0c 也就是客户端缓存 xff0c 既是网页性能优化里面静态资源相
  • ubuntu有线无线一起连

    在做嵌入式开发 xff0c 有线连开发板 xff0c 无线上网 一直都是连了有线无线就掉线 设置如下 xff1a 对于开发板的有线网络 xff0c 在设置里选上Use this connection only for resources o
  • jstat用法

    jstat的用法 用以判断JVM是否存在内存问题呢 xff1f 如何判断JVM垃圾回收是否正常 xff1f 一般的top指令基本上满足不了这样的需求 xff0c 因为它主要监控的是总体的系统资源 xff0c 很难定位到java 应用程序 J
  • A warning - comparison between signed and unsigned integer expressions [-Wsign-compare]的解决方法

    源程序是 span style font size 14px 产生观测模型 void ProRobotics GenObservations float sd Generate observations 假设传感器能观察到机器人周围sd米内

随机推荐