PuzzleSDK
SpriteBatchNodeReorderIssue767类 参考

#include <SpriteTest.h>

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

Public 成员函数

 CREATE_FUNC (SpriteBatchNodeReorderIssue767)
 
 SpriteBatchNodeReorderIssue767 ()
 
virtual std::string title () const override
 
virtual std::string subtitle () const override
 
void reorderSprites (float dt)
 
- 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
 
virtual void onEnter () override
 

额外继承的成员函数

- Public 类型 继承自 TestCase
enum class  Type { ROBUSTNESS , UNIT , GRAPHICAL_STATIC , MANUAL }
 
- Public 属性 继承自 TestCase
CC_CONSTRUCTOR_ACCESS __pad0__: virtual bool init() override
 
- Protected 属性 继承自 SpriteTestDemo
std::string _title
 
- Protected 属性 继承自 TestCase
cocos2d::MenuItemImage * _priorTestItem
 
cocos2d::MenuItemImage * _restartTestItem
 
cocos2d::MenuItemImage * _nextTestItem
 
cocos2d::Label * _titleLabel
 
cocos2d::Label * _subtitleLabel
 

详细描述

在文件 SpriteTest.h169 行定义.

构造及析构函数说明

◆ SpriteBatchNodeReorderIssue767()

SpriteBatchNodeReorderIssue767::SpriteBatchNodeReorderIssue767 ( )

在文件 SpriteTest.cpp835 行定义.

836{
837 auto s = Director::getInstance()->getWinSize();
838
839 SpriteFrameCache::getInstance()->addSpriteFramesWithFile("animations/ghosts.plist", "animations/ghosts.png");
840 Node *aParent;
841 Sprite *l1, *l2a, *l2b, *l3a1, *l3a2, *l3b1, *l3b2;
842
843 //
844 // SpriteBatchNode: 3 levels of children
845 //
846 aParent = SpriteBatchNode::create("animations/ghosts.png");
847 addChild(aParent, 0, kTagSprite1);
848
849 // parent
850 l1 = Sprite::createWithSpriteFrameName("father.gif");
851 l1->setPosition(Vec2( s.width/2, s.height/2));
852 aParent->addChild(l1, 0, kTagSprite2);
853 auto l1Size = l1->getContentSize();
854
855 // child left
856 l2a = Sprite::createWithSpriteFrameName("sister1.gif");
857 l2a->setPosition(Vec2( -25 + l1Size.width/2, 0 + l1Size.height/2));
858 l1->addChild(l2a, -1, kTagSpriteLeft);
859 auto l2aSize = l2a->getContentSize();
860
861
862 // child right
863 l2b = Sprite::createWithSpriteFrameName("sister2.gif");
864 l2b->setPosition(Vec2( +25 + l1Size.width/2, 0 + l1Size.height/2));
865 l1->addChild(l2b, 1, kTagSpriteRight);
866 auto l2bSize = l2a->getContentSize();
867
868
869 // child left bottom
870 l3a1 = Sprite::createWithSpriteFrameName("child1.gif");
871 l3a1->setScale(0.65f);
872 l3a1->setPosition(Vec2(0+l2aSize.width/2,-50+l2aSize.height/2));
873 l2a->addChild(l3a1, -1);
874
875 // child left top
876 l3a2 = Sprite::createWithSpriteFrameName("child1.gif");
877 l3a2->setScale(0.65f);
878 l3a2->setPosition(Vec2(0+l2aSize.width/2,+50+l2aSize.height/2));
879 l2a->addChild(l3a2, 1);
880
881 // child right bottom
882 l3b1 = Sprite::createWithSpriteFrameName("child1.gif");
883 l3b1->setScale(0.65f);
884 l3b1->setPosition(Vec2(0+l2bSize.width/2,-50+l2bSize.height/2));
885 l2b->addChild(l3b1, -1);
886
887 // child right top
888 l3b2 = Sprite::createWithSpriteFrameName("child1.gif");
889 l3b2->setScale(0.65f);
890 l3b2->setPosition(Vec2(0+l2bSize.width/2,+50+l2bSize.height/2));
891 l2b->addChild(l3b2, 1);
892
893 schedule(CC_CALLBACK_1(SpriteBatchNodeReorderIssue767::reorderSprites, this), 1, "issue_767_key");
894}
@ kTagSprite2
Definition: SpriteTest.cpp:50
@ kTagSprite1
Definition: SpriteTest.cpp:49
@ kTagSpriteRight
Definition: SpriteTest.cpp:44
@ kTagSpriteLeft
Definition: SpriteTest.cpp:43

引用了 kTagSprite1, kTagSprite2, kTagSpriteLeft, kTagSpriteRight , 以及 reorderSprites().

+ 函数调用图:

成员函数说明

◆ CREATE_FUNC()

SpriteBatchNodeReorderIssue767::CREATE_FUNC ( SpriteBatchNodeReorderIssue767  )

◆ reorderSprites()

void SpriteBatchNodeReorderIssue767::reorderSprites ( float  dt)

在文件 SpriteTest.cpp906 行定义.

907{
908 auto spritebatch = static_cast<SpriteBatchNode*>( getChildByTag(kTagSprite1) );
909 auto father = static_cast<Sprite*>( spritebatch->getChildByTag(kTagSprite2) );
910 auto left = static_cast<Sprite*>( father->getChildByTag(kTagSpriteLeft) );
911 auto right = static_cast<Sprite*>( father->getChildByTag(kTagSpriteRight) );
912
913 int newZLeft = 1;
914
915 if( left->getLocalZOrder() == 1 )
916 newZLeft = -1;
917
918 father->reorderChild(left, newZLeft);
919 father->reorderChild(right, -newZLeft);
920}

引用了 kTagSprite1, kTagSprite2, kTagSpriteLeft , 以及 kTagSpriteRight.

被这些函数引用 SpriteBatchNodeReorderIssue767().

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

◆ subtitle()

std::string SpriteBatchNodeReorderIssue767::subtitle ( ) const
overridevirtual

重载 TestCase .

在文件 SpriteTest.cpp901 行定义.

902{
903 return "reorder issue #767. Should not crash";
904}

◆ title()

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

重载 TestCase .

在文件 SpriteTest.cpp896 行定义.

897{
898 return "Testing SpriteBatchNode";
899}

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