PuzzleSDK
ParticleDemo类 参考

#include <ParticleTest.h>

+ 类 ParticleDemo 继承关系图:
+ ParticleDemo 的协作图:

Public 成员函数

 ~ParticleDemo ()
 
virtual void onEnter () override
 
virtual std::string title () const override
 
virtual std::string subtitle () const override
 
void toggleCallback (cocos2d::Ref *sender)
 
void onTouchesBegan (const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
 
void onTouchesMoved (const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
 
void onTouchesEnded (const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
 
virtual void update (float dt) override
 
void setEmitterPosition ()
 
- Public 成员函数 继承自 TestCase
 TestCase ()
 
 ~TestCase ()
 
virtual Type getTestType () const
 
virtual float getDuration () const
 
virtual std::string getExpectedOutput () const
 
virtual std::string getActualOutput () const
 
virtual void restartTestCallback (cocos2d::Ref *sender)
 
virtual void nextTestCallback (cocos2d::Ref *sender)
 
virtual void priorTestCallback (cocos2d::Ref *sender)
 
virtual void onBackCallback (cocos2d::Ref *sender)
 
void setTestSuite (TestSuite *testSuite)
 
TestSuitegetTestSuite () const
 
float getRunTime () const
 
void setTestCaseName (const std::string &name)
 
std::string getTestCaseName () const
 
const cocos2d::Label * getSubtitleLable () const
 
const cocos2d::MenuItemImage * getRestartTestItem () const
 

Protected 属性

cocos2d::ParticleSystemQuad * _emitter
 
cocos2d::Sprite * _background
 
cocos2d::LayerColor * _color
 
- Protected 属性 继承自 TestCase
cocos2d::MenuItemImage * _priorTestItem
 
cocos2d::MenuItemImage * _restartTestItem
 
cocos2d::MenuItemImage * _nextTestItem
 
cocos2d::Label * _titleLabel
 
cocos2d::Label * _subtitleLabel
 

额外继承的成员函数

- Public 类型 继承自 TestCase
enum class  Type { ROBUSTNESS , UNIT , GRAPHICAL_STATIC , MANUAL }
 
- Public 属性 继承自 TestCase
CC_CONSTRUCTOR_ACCESS __pad0__: virtual bool init() override
 

详细描述

在文件 ParticleTest.h32 行定义.

构造及析构函数说明

◆ ~ParticleDemo()

ParticleDemo::~ParticleDemo ( )

在文件 ParticleTest.cpp1078 行定义.

1079{
1080 CC_SAFE_RELEASE(_emitter);
1081}
cocos2d::ParticleSystemQuad * _emitter
Definition: ParticleTest.h:35

引用了 _emitter.

成员函数说明

◆ onEnter()

void ParticleDemo::onEnter ( )
overridevirtual

重载 TestCase .

DemoFirework, DemoFire, DemoSun, DemoGalaxy, DemoFlower, DemoBigFlower, DemoRotFlower, DemoMeteor, DemoSpiral, DemoExplosion, DemoSmoke, DemoSnow, DemoRain, DemoModernArt, DemoRing, ParallaxParticle, DemoParticleFromFile, RadiusMode1, RadiusMode2, Issue704, Issue870, Issue1201, ParticleBatchHybrid, ParticleBatchMultipleEmitters, ParticleReorder, MultipleParticleSystems, MultipleParticleSystemsBatched, AddAndDeleteParticleSystems, ReorderParticleSystems, PremultipliedAlphaTest, PremultipliedAlphaTest2, Issue3990, ParticleVisibleTest, ParticleAutoBatching, ParticleResetTotalParticles, ParticleIssue12310, DemoPause , 以及 ParticleSpriteFrame 重载.

在文件 ParticleTest.cpp1083 行定义.

1084{
1086
1087 MenuItemFont::setFontSize(32);
1088
1089 _color = LayerColor::create( Color4B(127,127,127,255) );
1090 this->addChild(_color);
1091
1092 _emitter = nullptr;
1093
1094 auto listener = EventListenerTouchAllAtOnce::create();
1095 listener->onTouchesBegan = CC_CALLBACK_2(ParticleDemo::onTouchesBegan, this);
1096 listener->onTouchesMoved = CC_CALLBACK_2(ParticleDemo::onTouchesMoved, this);
1097 listener->onTouchesEnded = CC_CALLBACK_2(ParticleDemo::onTouchesEnded, this);
1098 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
1099
1100 auto s = Director::getInstance()->getWinSize();
1101
1102 auto item4 = MenuItemToggle::createWithCallback( CC_CALLBACK_1(ParticleDemo::toggleCallback, this),
1103 MenuItemFont::create( "Free Movement" ),
1104 MenuItemFont::create( "Relative Movement" ),
1105 MenuItemFont::create( "Grouped Movement" ),
1106 nullptr );
1107
1108 auto menu = Menu::create(item4, nullptr);
1109
1110 menu->setPosition( Vec2::ZERO );
1111 item4->setPosition( Vec2( VisibleRect::left().x, VisibleRect::bottom().y+ 100) );
1112 item4->setAnchorPoint( Vec2(0,0) );
1113
1114 addChild( menu, 100 );
1115
1116 auto labelAtlas = LabelAtlas::create("0000", "fps_images.png", 12, 32, '.');
1117 addChild(labelAtlas, 100, kTagParticleCount);
1118 labelAtlas->setPosition(Vec2(s.width-66,50.0f));
1119
1120 // moving background
1121 _background = Sprite::create(s_back3);
1122 addChild(_background, 5);
1123 _background->setPosition( Vec2(s.width/2, s.height-180) );
1124
1125 auto move = MoveBy::create(4, Vec2(300,0) );
1126 auto move_back = move->reverse();
1127 auto seq = Sequence::create( move, move_back, nullptr);
1128 _background->runAction( RepeatForever::create(seq) );
1129
1130
1131 scheduleUpdate();
1132}
@ kTagParticleCount
void onTouchesMoved(const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
cocos2d::Sprite * _background
Definition: ParticleTest.h:36
void onTouchesEnded(const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
void toggleCallback(cocos2d::Ref *sender)
cocos2d::LayerColor * _color
Definition: ParticleTest.h:37
void onTouchesBegan(const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
virtual void onEnter() override
Definition: BaseTest.cpp:430
static cocos2d::Vec2 bottom()
Definition: VisibleRect.cpp:63
static cocos2d::Vec2 left()
Definition: VisibleRect.cpp:45
static const char s_back3[]
Definition: testResource.h:41

引用了 _background, _color, _emitter, VisibleRect::bottom(), kTagParticleCount, VisibleRect::left(), TestCase::onEnter(), onTouchesBegan(), onTouchesEnded(), onTouchesMoved(), s_back3 , 以及 toggleCallback().

被这些函数引用 DemoFirework::onEnter(), DemoFire::onEnter(), DemoSun::onEnter(), DemoGalaxy::onEnter(), DemoFlower::onEnter(), DemoBigFlower::onEnter(), DemoRotFlower::onEnter(), DemoMeteor::onEnter(), DemoSpiral::onEnter(), DemoExplosion::onEnter(), DemoSmoke::onEnter(), DemoSnow::onEnter(), DemoRain::onEnter(), DemoModernArt::onEnter(), DemoRing::onEnter(), ParallaxParticle::onEnter(), DemoParticleFromFile::onEnter(), RadiusMode1::onEnter(), RadiusMode2::onEnter(), Issue704::onEnter(), Issue870::onEnter(), Issue1201::onEnter(), ParticleBatchHybrid::onEnter(), ParticleBatchMultipleEmitters::onEnter(), ParticleReorder::onEnter(), MultipleParticleSystems::onEnter(), MultipleParticleSystemsBatched::onEnter(), AddAndDeleteParticleSystems::onEnter(), ReorderParticleSystems::onEnter(), PremultipliedAlphaTest::onEnter(), PremultipliedAlphaTest2::onEnter(), Issue3990::onEnter(), ParticleVisibleTest::onEnter(), ParticleAutoBatching::onEnter(), ParticleResetTotalParticles::onEnter(), ParticleIssue12310::onEnter(), DemoPause::onEnter() , 以及 ParticleSpriteFrame::onEnter().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ onTouchesBegan()

void ParticleDemo::onTouchesBegan ( const std::vector< cocos2d::Touch * > &  touches,
cocos2d::Event *  event 
)

在文件 ParticleTest.cpp1144 行定义.

1145{
1146 onTouchesEnded(touches, event);
1147}

引用了 onTouchesEnded().

被这些函数引用 onEnter().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ onTouchesEnded()

void ParticleDemo::onTouchesEnded ( const std::vector< cocos2d::Touch * > &  touches,
cocos2d::Event *  event 
)

在文件 ParticleTest.cpp1154 行定义.

1155{
1156 auto touch = touches[0];
1157
1158 auto location = touch->getLocation();
1159
1160 auto pos = Vec2::ZERO;
1161 if (_background)
1162 {
1163 pos = _background->convertToWorldSpace(Vec2::ZERO);
1164 }
1165
1166 if (_emitter != nullptr)
1167 {
1168 _emitter->setPosition(location -pos);
1169 }
1170}

引用了 _background , 以及 _emitter.

被这些函数引用 onEnter(), onTouchesBegan() , 以及 onTouchesMoved().

+ 这是这个函数的调用关系图:

◆ onTouchesMoved()

void ParticleDemo::onTouchesMoved ( const std::vector< cocos2d::Touch * > &  touches,
cocos2d::Event *  event 
)

在文件 ParticleTest.cpp1149 行定义.

1150{
1151 return onTouchesEnded(touches, event);
1152}

引用了 onTouchesEnded().

被这些函数引用 onEnter().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ setEmitterPosition()

void ParticleDemo::setEmitterPosition ( )

在文件 ParticleTest.cpp1196 行定义.

1197{
1198 auto s = Director::getInstance()->getWinSize();
1199 if (_emitter != nullptr)
1200 {
1201 _emitter->setPosition( Vec2(s.width / 2, s.height / 2) );
1202 }
1203}

引用了 _emitter.

被这些函数引用 DemoFirework::onEnter(), DemoFire::onEnter(), DemoSun::onEnter(), DemoGalaxy::onEnter(), DemoFlower::onEnter(), DemoBigFlower::onEnter(), DemoRotFlower::onEnter(), DemoMeteor::onEnter(), DemoSpiral::onEnter(), DemoExplosion::onEnter(), DemoSmoke::onEnter(), DemoSnow::onEnter(), DemoRain::onEnter(), DemoModernArt::onEnter(), DemoRing::onEnter(), DemoParticleFromFile::onEnter(), ParticleVisibleTest::onEnter(), DemoPause::onEnter() , 以及 ParticleSpriteFrame::onEnter().

+ 这是这个函数的调用关系图:

◆ subtitle()

◆ title()

◆ toggleCallback()

void ParticleDemo::toggleCallback ( cocos2d::Ref *  sender)

在文件 ParticleTest.cpp1183 行定义.

1184{
1185 if (_emitter != nullptr)
1186 {
1187 if (_emitter->getPositionType() == ParticleSystem::PositionType::GROUPED)
1188 _emitter->setPositionType(ParticleSystem::PositionType::FREE);
1189 else if (_emitter->getPositionType() == ParticleSystem::PositionType::FREE)
1190 _emitter->setPositionType(ParticleSystem::PositionType::RELATIVE);
1191 else if (_emitter->getPositionType() == ParticleSystem::PositionType::RELATIVE)
1192 _emitter->setPositionType(ParticleSystem::PositionType::GROUPED );
1193 }
1194}

引用了 _emitter.

被这些函数引用 onEnter().

+ 这是这个函数的调用关系图:

◆ update()

void ParticleDemo::update ( float  dt)
overridevirtual

MultipleParticleSystems, MultipleParticleSystemsBatched, AddAndDeleteParticleSystems , 以及 ReorderParticleSystems 重载.

在文件 ParticleTest.cpp1172 行定义.

1173{
1174 if (_emitter)
1175 {
1176 auto atlas = (LabelAtlas*)getChildByTag(kTagParticleCount);
1177 char str[5] = {0};
1178 sprintf(str, "%04d", _emitter->getParticleCount());
1179 atlas->setString(str);
1180 }
1181}

引用了 _emitter , 以及 kTagParticleCount.

类成员变量说明

◆ _background

◆ _color

◆ _emitter


该类的文档由以下文件生成: