Merge branch 'particle_merge' of https://github.com/super626/cocos2d-x into particle_merge

This commit is contained in:
yangxiao 2015-03-03 17:47:22 +08:00
commit 9e06a4b848
4 changed files with 67 additions and 28 deletions

View File

@ -511,6 +511,8 @@ void PUParticleSystem3D::prepared()
_prepared = true; _prepared = true;
_timeElapsedSinceStart = 0.0f; _timeElapsedSinceStart = 0.0f;
if (_parentParticleSystem)
_particleSystemScaleVelocity = _parentParticleSystem->getParticleSystemScaleVelocity();
} }
notifyRescaled(getDerivedScale()); notifyRescaled(getDerivedScale());

View File

@ -165,18 +165,18 @@ void PUParticleSystem3DTranslator::translate(PUScriptCompiler* compiler, PUAbstr
} }
} }
} }
// else if (prop->name == token[TOKEN_PS_SCALE_VELOCITY]) else if (prop->name == token[TOKEN_PS_SCALE_VELOCITY])
// { {
// // Property: scale_velocity // Property: scale_velocity
// if (passValidateProperty(compiler, prop, token[TOKEN_PS_ITERATION_INTERVAL], VAL_REAL)) if (passValidateProperty(compiler, prop, token[TOKEN_PS_ITERATION_INTERVAL], VAL_REAL))
// { {
// Real val = 0.0f; float val = 0.0f;
// if(getReal(prop->values.front(), &val)) if(getFloat(*prop->values.front(), &val))
// { {
// mSystem->setScaleVelocity(val); _system->setParticleSystemScaleVelocity(val);
// } }
// } }
// } }
// else if (prop->name == token[TOKEN_PS_SCALE_TIME]) // else if (prop->name == token[TOKEN_PS_SCALE_TIME])
// { // {
// // Property: scale_time // // Property: scale_time

View File

@ -54,6 +54,7 @@ static std::function<Layer*()> createFunctions[] =
CL(Particle3DCanOfWormsDemo), CL(Particle3DCanOfWormsDemo),
CL(Particle3DRibbonTrailDemo), CL(Particle3DRibbonTrailDemo),
CL(Particle3DWeaponTrailDemo), CL(Particle3DWeaponTrailDemo),
CL(Particle3DWithSprite3DDemo),
}; };
#define MAX_LAYER (sizeof(createFunctions) / sizeof(createFunctions[0])) #define MAX_LAYER (sizeof(createFunctions) / sizeof(createFunctions[0]))
@ -357,22 +358,6 @@ bool Particle3DLineStreakDemo::init()
if (!Particle3DTestDemo::init()) if (!Particle3DTestDemo::init())
return false; return false;
std::string c3bfileName = "Sprite3DTest/orc.c3b";
auto sprite = Sprite3D::create(c3bfileName);
this->addChild(sprite);
//sprite->setPosition3D(Vec3(0, -20, -25));
//sprite->setScale(5, 5);
sprite->setRotation3D(Vec3(0, 180, 0));
sprite->setCameraMask((unsigned short)CameraFlag::USER1);
//sprite->setOpacity(100);
auto animation = Animation3D::create(c3bfileName);
if (animation)
{
auto animate = Animate3D::create(animation);
sprite->runAction(RepeatForever::create(animate));
}
auto rootps = PUParticleSystem3D::create("lineStreak.pu", "pu_mediapack_01.material"); auto rootps = PUParticleSystem3D::create("lineStreak.pu", "pu_mediapack_01.material");
rootps->setCameraMask((unsigned short)CameraFlag::USER1); rootps->setCameraMask((unsigned short)CameraFlag::USER1);
rootps->setScale(5.0f); rootps->setScale(5.0f);
@ -546,3 +531,42 @@ bool Particle3DWeaponTrailDemo::init()
return true; return true;
} }
std::string Particle3DWithSprite3DDemo::subtitle() const
{
return "Particle3DWithSprite3D";
}
bool Particle3DWithSprite3DDemo::init()
{
if (!Particle3DTestDemo::init())
return false;
std::string c3bfileName = "Sprite3DTest/orc.c3b";
auto sprite = Sprite3D::create(c3bfileName);
this->addChild(sprite);
sprite->setPosition3D(Vec3(-20.0f, 0.0f, 0.0f));
sprite->setRotation3D(Vec3(0, 180, 0));
sprite->setCameraMask((unsigned short)CameraFlag::USER1);
//sprite->setOpacity(100);
auto animation = Animation3D::create(c3bfileName);
if (animation)
{
auto animate = Animate3D::create(animation);
sprite->runAction(RepeatForever::create(animate));
}
auto billboard = BillBoard::create("Images/Icon.png");
billboard->setPosition3D(Vec3(20.0f, 0.0f, 0.0f));
billboard->setScale(0.2f);
billboard->setCameraMask((unsigned short)CameraFlag::USER1);
this->addChild(billboard);
auto rootps = PUParticleSystem3D::create("star.pu");
rootps->setCameraMask((unsigned short)CameraFlag::USER1);
rootps->startParticleSystem();
this->addChild(rootps, 0, PARTICLE_SYSTEM_TAG);
return true;
}

View File

@ -253,6 +253,19 @@ public:
virtual bool init() override; virtual bool init() override;
}; };
class Particle3DWithSprite3DDemo : public Particle3DTestDemo
{
public:
CREATE_FUNC(Particle3DWithSprite3DDemo);
Particle3DWithSprite3DDemo(){};
virtual ~Particle3DWithSprite3DDemo(){};
virtual std::string subtitle() const override;
virtual bool init() override;
};
class Particle3DTestScene : public TestScene class Particle3DTestScene : public TestScene
{ {
public: public: