PuzzleSDK
SpriteHybrid类 参考

#include <SpriteTest.h>

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

Public 成员函数

 CREATE_FUNC (SpriteHybrid)
 
 SpriteHybrid ()
 
void reparentSprite (float dt)
 
virtual std::string title () const override
 
virtual void onExit () override
 
- Public 成员函数 继承自 TestCase
 TestCase ()
 
 ~TestCase ()
 
virtual std::string subtitle () const
 
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
 
virtual void onEnter () override
 

Protected 属性

bool _usingSpriteBatchNode
 
- Protected 属性 继承自 SpriteTestDemo
std::string _title
 
- 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
 

详细描述

在文件 SpriteTest.h527 行定义.

构造及析构函数说明

◆ SpriteHybrid()

SpriteHybrid::SpriteHybrid ( )

在文件 SpriteTest.cpp2425 行定义.

2426{
2427 auto s = Director::getInstance()->getWinSize();
2428
2429 // parents
2430 auto parent1 = Node::create();
2431 auto parent2 = SpriteBatchNode::create("animations/grossini.png", 50);
2432
2433 addChild(parent1, 0, kTagNode);
2434 addChild(parent2, 0, kTagSpriteBatchNode);
2435
2436
2437 // IMPORTANT:
2438 // The sprite frames will be cached AND RETAINED, and they won't be released unless you call
2439 // SpriteFrameCache::getInstance()->removeUnusedSpriteFrames);
2440 SpriteFrameCache::getInstance()->addSpriteFramesWithFile("animations/grossini.plist");
2441
2442
2443 // create 250 sprites
2444 // only show 80% of them
2445 for(int i = 0; i < 250; i++)
2446 {
2447 int spriteIdx = CCRANDOM_0_1() * 14;
2448 char str[25] = {0};
2449 sprintf(str, "grossini_dance_%02d.png", (spriteIdx+1));
2450 auto frame = SpriteFrameCache::getInstance()->getSpriteFrameByName(str);
2451 auto sprite = Sprite::createWithSpriteFrame(frame);
2452 parent1->addChild(sprite, i, i);
2453
2454 float x=-1000;
2455 float y=-1000;
2456 if( CCRANDOM_0_1() < 0.2f )
2457 {
2458 x = CCRANDOM_0_1() * s.width;
2459 y = CCRANDOM_0_1() * s.height;
2460 }
2461 sprite->setPosition( Vec2(x,y) );
2462
2463 auto action = RotateBy::create(4, 360);
2464 sprite->runAction( RepeatForever::create(action) );
2465 }
2466
2467 _usingSpriteBatchNode = false;
2468
2469 schedule(CC_CALLBACK_1(SpriteHybrid::reparentSprite, this), 2, "reparent_sprite_key");
2470}
@ kTagSpriteBatchNode
Definition: SpriteTest.cpp:40
@ kTagNode
Definition: SpriteTest.cpp:41
void reparentSprite(float dt)
bool _usingSpriteBatchNode
Definition: SpriteTest.h:538

引用了 _usingSpriteBatchNode, kTagNode, kTagSpriteBatchNode , 以及 reparentSprite().

+ 函数调用图:

成员函数说明

◆ CREATE_FUNC()

SpriteHybrid::CREATE_FUNC ( SpriteHybrid  )

◆ onExit()

void SpriteHybrid::onExit ( )
overridevirtual

在文件 SpriteTest.cpp2500 行定义.

2501{
2502 SpriteTestDemo::onExit();
2503 SpriteFrameCache::getInstance()->removeSpriteFramesFromFile("animations/grossini.plist");
2504}

◆ reparentSprite()

void SpriteHybrid::reparentSprite ( float  dt)

在文件 SpriteTest.cpp2472 行定义.

2473{
2474 auto p1 = getChildByTag(kTagNode);
2475 auto p2 = getChildByTag( kTagSpriteBatchNode );
2476
2477 Vector<Node*> retArray(250);
2478
2480 std::swap(p1, p2);
2481
2483
2484 auto& p1Children = p1->getChildren();
2485 for(const auto &node : p1Children) {
2486 retArray.pushBack(node);
2487 }
2488
2489 int i=0;
2490 p1->removeAllChildrenWithCleanup(false);
2491
2492 for(const auto &node : retArray) {
2493 p2->addChild(node, i, i);
2494 i++;
2495 }
2496
2498}

引用了 _usingSpriteBatchNode, kTagNode , 以及 kTagSpriteBatchNode.

被这些函数引用 SpriteHybrid().

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

◆ title()

std::string SpriteHybrid::title ( ) const
overridevirtual

重载 TestCase .

在文件 SpriteTest.cpp2506 行定义.

2507{
2508 return "HybridSprite* sprite Test";
2509}

类成员变量说明

◆ _usingSpriteBatchNode

bool SpriteHybrid::_usingSpriteBatchNode
protected

在文件 SpriteTest.h538 行定义.

被这些函数引用 reparentSprite() , 以及 SpriteHybrid().


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