Cocos2dx 粒子系统学习笔记

这篇博客详细介绍了Cocos2d-x引擎中的粒子系统,包括爆炸、火焰、烟花等11种内置粒子效果的演示,并探讨了如何利用Plist文件创建自定义粒子效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、演示内置的粒子系统示例:

	Size visibleSize = Director::getInstance()->getVisibleSize();
    Vec2 origin = Director::getInstance()->getVisibleOrigin();
    // 关闭菜单
    auto closeItem = MenuItemImage::create(
        "CloseNormal.png",
        "CloseSelected.png",
        CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));
    closeItem->setPosition(Vec2(origin.x + visibleSize.width - closeItem->getContentSize().width / 2,
        origin.y + closeItem->getContentSize().height / 2));
    auto menu = Menu::create(closeItem, NULL);
    menu->setPosition(Vec2::ZERO);
    this->addChild(menu, 1);
    //auto fire = ParticleFire::create(); // 火焰粒子系统
    //auto fireworks = ParticleFireworks::create(); //烟花粒子系统
    //auto flower = ParticleFlower::create(); //花朵粒子系统
    //auto galaxy = ParticleGalaxy::create(); // 银河系粒子系统
    //auto meteor = ParticleMeteor::create(); // 流星粒子系统
    //auto rain = ParticleRain::create(); // 下雨粒子系统
    //auto smoke = ParticleSmoke::create(); // 烟雾粒子系统
    //auto snow = ParticleSnow::create(); // 下雪粒子系统
    //auto spiral = ParticleSpiral::create(); // 螺旋粒子系统
    //auto sun = ParticleSun::create(); // 太阳粒子系统
    // 创建粒子系统
    auto explosion = ParticleExplosion::create();
    // 设置粒子系统的位置
    explosion->setPosition(visibleSize.width / 2, visibleSize.height / 2);
    // 添加为当前层的子节点
    this->addChild(explosion); 

(1)爆炸粒子系统
在这里插入图片描述
(2)火焰粒子系统
在这里插入图片描述
(3)烟花粒子系统
在这里插入图片描述
(4)花朵粒子系统
在这里插入图片描述
(5)银河系粒子系统
在这里插入图片描述
(6)流星粒子系统
在这里插入图片描述
(7)下雨粒子系统
在这里插入图片描述
(8)烟雾粒子系统
在这里插入图片描述
(9)下雪粒子系统
在这里插入图片描述
(10)螺旋粒子系统
在这里插入图片描述
(11)太阳粒子系统
在这里插入图片描述
2、演示使用Plist文件创建粒子系统:

	Size visibleSize = Director::getInstance()->getVisibleSize();
    Vec2 origin = Director::getInstance()->getVisibleOrigin();
    auto closeItem = MenuItemImage::create(
        "CloseNormal.png",
        "CloseSelected.png",
        CC_CALLBACK_1(HelloWorld::menuCloseCallback, this));
    closeItem->setPosition(Vec2(origin.x + visibleSize.width - closeItem->getContentSize().width / 2,
        origin.y + closeItem->getContentSize().height / 2));
    // create menu, it's an autorelease object
    auto menu = Menu::create(closeItem, NULL);
    menu->setPosition(Vec2::ZERO);
    this->addChild(menu, 1);
    // 使用plist文件创建一个粒子
    auto water = ParticleSystemQuad::create("water.plist");
    water->setPosition(visibleSize.width / 2, visibleSize.height * 0.8);
    this->addChild(water);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值