PuzzleSDK
Sprite3DWithSkinOutlineTest类 参考

#include <Sprite3DTest.h>

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

Public 成员函数

 CREATE_FUNC (Sprite3DWithSkinOutlineTest)
 
 Sprite3DWithSkinOutlineTest ()
 
virtual ~Sprite3DWithSkinOutlineTest ()
 
virtual std::string title () const override
 
virtual std::string subtitle () const override
 
void addNewSpriteWithCoords (cocos2d::Vec2 p)
 
void onTouchesEnded (const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
 
- Public 成员函数 继承自 Sprite3DTestDemo
virtual ~Sprite3DTestDemo ()
 
- 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
 

Protected 属性

std::vector< cocos2d::Sprite3D * > _sprites
 
cocos2d::EventListenerCustom * _backToForegroundListener
 
- 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
 

详细描述

在文件 Sprite3DTest.h237 行定义.

构造及析构函数说明

◆ Sprite3DWithSkinOutlineTest()

Sprite3DWithSkinOutlineTest::Sprite3DWithSkinOutlineTest ( )

在文件 Sprite3DTest.cpp1010 行定义.

1011{
1012 auto listener = EventListenerTouchAllAtOnce::create();
1013 listener->onTouchesEnded = CC_CALLBACK_2(Sprite3DWithSkinOutlineTest::onTouchesEnded, this);
1014 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
1015
1016 auto s = Director::getInstance()->getWinSize();
1017 addNewSpriteWithCoords(Vec2(s.width / 2, s.height / 2));
1018
1019#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
1020 _backToForegroundListener = EventListenerCustom::create(EVENT_COME_TO_FOREGROUND,
1021 [this](EventCustom*)
1022 {
1023 auto material = Sprite3DMaterial::createWithFilename("Sprite3DTest/outline.material");
1024 material->setTechnique("outline_skinned");
1025 for (auto& sprite : _sprites)
1026 {
1027 sprite->setMaterial(material->clone());
1028 }
1029 }
1030 );
1031 Director::getInstance()->getEventDispatcher()->addEventListenerWithFixedPriority(_backToForegroundListener, 1);
1032#endif
1033}
cocos2d::EventListenerCustom * _backToForegroundListener
Definition: Sprite3DTest.h:254
void addNewSpriteWithCoords(cocos2d::Vec2 p)
std::vector< cocos2d::Sprite3D * > _sprites
Definition: Sprite3DTest.h:251
void onTouchesEnded(const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)

引用了 _backToForegroundListener, _sprites, addNewSpriteWithCoords() , 以及 onTouchesEnded().

+ 函数调用图:

◆ ~Sprite3DWithSkinOutlineTest()

Sprite3DWithSkinOutlineTest::~Sprite3DWithSkinOutlineTest ( )
virtual

在文件 Sprite3DTest.cpp1034 行定义.

1035{
1036#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
1037 Director::getInstance()->getEventDispatcher()->removeEventListener(_backToForegroundListener);
1038#endif
1039}

引用了 _backToForegroundListener.

成员函数说明

◆ addNewSpriteWithCoords()

void Sprite3DWithSkinOutlineTest::addNewSpriteWithCoords ( cocos2d::Vec2  p)

在文件 Sprite3DTest.cpp1049 行定义.

1050{
1051
1052 std::string fileName = "Sprite3DTest/orc.c3b";
1053 auto sprite = Sprite3D::create(fileName);
1054
1055 auto material = Sprite3DMaterial::createWithFilename("Sprite3DTest/outline.material");
1056 material->setTechnique("outline_skinned");
1057 sprite->setMaterial(material);
1058
1059 sprite->setScale(3);
1060 sprite->setRotation3D(Vec3(0.0f, 180.0f, 0.0f));
1061 addChild(sprite);
1062 sprite->setPosition(Vec2(p.x, p.y));
1063
1064 auto animation = Animation3D::create(fileName);
1065 if (animation)
1066 {
1067 auto animate = Animate3D::create(animation);
1068 bool inverse = (std::rand() % 3 == 0);
1069
1070 int rand2 = std::rand();
1071 float speed = 1.0f;
1072 if (rand2 % 3 == 1)
1073 {
1074 speed = animate->getSpeed() + CCRANDOM_0_1();
1075 }
1076 else if (rand2 % 3 == 2)
1077 {
1078 speed = animate->getSpeed() - 0.5 * CCRANDOM_0_1();
1079 }
1080 animate->setSpeed(inverse ? -speed : speed);
1081
1082 sprite->runAction(RepeatForever::create(animate));
1083 }
1084}

被这些函数引用 onTouchesEnded() , 以及 Sprite3DWithSkinOutlineTest().

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

◆ CREATE_FUNC()

Sprite3DWithSkinOutlineTest::CREATE_FUNC ( Sprite3DWithSkinOutlineTest  )

◆ onTouchesEnded()

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

在文件 Sprite3DTest.cpp1086 行定义.

1087{
1088 for (auto touch : touches)
1089 {
1090 auto location = touch->getLocation();
1091
1092 addNewSpriteWithCoords(location);
1093 }
1094}

引用了 addNewSpriteWithCoords().

被这些函数引用 Sprite3DWithSkinOutlineTest().

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

◆ subtitle()

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

重载 TestCase .

在文件 Sprite3DTest.cpp1044 行定义.

1045{
1046 return "Tap screen to add more sprite3D";
1047}

◆ title()

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

重载 Sprite3DTestDemo .

在文件 Sprite3DTest.cpp1040 行定义.

1041{
1042 return "Testing Sprite3D for skinned outline";
1043}

类成员变量说明

◆ _backToForegroundListener

cocos2d::EventListenerCustom* Sprite3DWithSkinOutlineTest::_backToForegroundListener
protected

在文件 Sprite3DTest.h254 行定义.

被这些函数引用 Sprite3DWithSkinOutlineTest() , 以及 ~Sprite3DWithSkinOutlineTest().

◆ _sprites

std::vector<cocos2d::Sprite3D*> Sprite3DWithSkinOutlineTest::_sprites
protected

在文件 Sprite3DTest.h251 行定义.

被这些函数引用 Sprite3DWithSkinOutlineTest().


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