cocos2d-x spine 加载粒子特效


spine骨骼加载粒子效果 将粒子效果加到骨骼上,update位置和角度
.h
#ifndef __HOMESCENE_H__
#define __HOMESCENE_H__
#include "cocos2d.h"
#include "cocostudio/CocoStudio.h"
#include "ui/CocosGUI.h"
#include <spine/spine-cocos2dx.h>
#include "spine/spine.h"
using namespace spine;
using namespace cocostudio::timeline;
USING_NS_CC;
class HomeScene : public cocos2d::Scene
{
public :
HomeScene();
virtual ~HomeScene();
public :
void initUI();
void update(float);
public:
ParticleSystemQuad* emitter;
SkeletonAnimation* spineNode1;
ui::Layout* homeLayout;
};
#endif


.cpp
void HomeScene::initUI()
{
Node* root_node = CSLoader::createNode("homeScene.csb");
homeLayout = static_cast<ui::Layout*>(root_node->getChildByName("Panel_Home"));
spineNode1 = SkeletonAnimation::createWithFile("Boss01.json", "Boss01.atlas");
spineNode1->setAnimation(0, "ATK", true);
spineNode1->setPosition(Vec2(568, 200));
homeLayout->addChild(spineNode1);

emitter = ParticleSystemQuad::create("Eff_BG01_2.plist");
homeLayout->addChild(emitter, 0, 1);
this->scheduleUpdate();
}
void HomeScene::update(float dt)
{
spBone* particleBone = spineNode1->findBone("Boss06_weapon01");
Vec2 bonePos = Vec2(particleBone->worldX, particleBone->worldY);
Vec2 pt = spineNode1->convertToWorldSpace(bonePos);//粒子1是添加在Scene上的 所以需要坐标转换一下
emitter->setPosition(pt);
emitter->setRotation(particleBone->worldRotation);
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM