PuzzleSDK
Sprite3DWithSkinTest类 参考

#include <Sprite3DTest.h>

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

Public 成员函数

 CREATE_FUNC (Sprite3DWithSkinTest)
 
 Sprite3DWithSkinTest ()
 
virtual std::string title () const override
 
virtual std::string subtitle () const override
 
void addNewSpriteWithCoords (cocos2d::Vec2 p)
 
void switchAnimationQualityCallback (cocos2d::Ref *sender)
 
void onTouchesEnded (const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
 
std::string getAnimationQualityMessage () const
 
- 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
 

Private 属性

std::vector< cocos2d::Sprite3D * > _sprits
 
int _animateQuality
 
cocos2d::MenuItemFont * _menuItem
 

额外继承的成员函数

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

详细描述

在文件 Sprite3DTest.h217 行定义.

构造及析构函数说明

◆ Sprite3DWithSkinTest()

Sprite3DWithSkinTest::Sprite3DWithSkinTest ( )

在文件 Sprite3DTest.cpp906 行定义.

907{
908 auto listener = EventListenerTouchAllAtOnce::create();
909 listener->onTouchesEnded = CC_CALLBACK_2(Sprite3DWithSkinTest::onTouchesEnded, this);
910 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
911
912 // switch animation quality. In fact, you can set the sprite3d out of frustum to Animate3DQuality::QUALITY_NONE, it can save a lot of cpu time
913 MenuItemFont::setFontName("fonts/arial.ttf");
914 MenuItemFont::setFontSize(15);
915 _animateQuality = (int)Animate3DQuality::QUALITY_LOW;
917 _menuItem->setColor(Color3B(0, 200, 20));
918 auto menu = Menu::create(_menuItem, NULL);
919 menu->setPosition(Vec2::ZERO);
920 _menuItem->setPosition(VisibleRect::left().x + 50, VisibleRect::top().y - 70);
921 addChild(menu, 1);
922
923 _sprits.clear();
924
925 auto s = Director::getInstance()->getWinSize();
926 addNewSpriteWithCoords(Vec2(s.width / 2, s.height / 2));
927}
std::vector< cocos2d::Sprite3D * > _sprits
Definition: Sprite3DTest.h:232
void switchAnimationQualityCallback(cocos2d::Ref *sender)
std::string getAnimationQualityMessage() const
void addNewSpriteWithCoords(cocos2d::Vec2 p)
void onTouchesEnded(const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
cocos2d::MenuItemFont * _menuItem
Definition: Sprite3DTest.h:234
static cocos2d::Vec2 top()
Definition: VisibleRect.cpp:57
static cocos2d::Vec2 left()
Definition: VisibleRect.cpp:45

引用了 _animateQuality, _menuItem, _sprits, addNewSpriteWithCoords(), getAnimationQualityMessage(), VisibleRect::left(), onTouchesEnded(), switchAnimationQualityCallback() , 以及 VisibleRect::top().

+ 函数调用图:

成员函数说明

◆ addNewSpriteWithCoords()

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

在文件 Sprite3DTest.cpp937 行定义.

938{
939 std::string fileName = "Sprite3DTest/orc.c3b";
940 auto sprite = Sprite3D::create(fileName);
941 sprite->setScale(3);
942 sprite->setRotation3D(Vec3(0.0f, 180.0f, 0.0f));
943 sprite->setPosition(Vec2(p.x, p.y));
944 addChild(sprite);
945 _sprits.push_back(sprite);
946
947 auto animation = Animation3D::create(fileName);
948 if (animation)
949 {
950 auto animate = Animate3D::create(animation);
951 bool inverse = (std::rand() % 3 == 0);
952
953 int rand2 = std::rand();
954 float speed = 1.0f;
955 if (rand2 % 3 == 1)
956 {
957 speed = animate->getSpeed() + CCRANDOM_0_1();
958 }
959 else if (rand2 % 3 == 2)
960 {
961 speed = animate->getSpeed() - 0.5 * CCRANDOM_0_1();
962 }
963 animate->setSpeed(inverse ? -speed : speed);
964 animate->setTag(110);
965 animate->setQuality((Animate3DQuality)_animateQuality);
966 auto repeat = RepeatForever::create(animate);
967 repeat->setTag(110);
968 sprite->runAction(repeat);
969 }
970}

引用了 _animateQuality , 以及 _sprits.

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

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

◆ CREATE_FUNC()

Sprite3DWithSkinTest::CREATE_FUNC ( Sprite3DWithSkinTest  )

◆ getAnimationQualityMessage()

std::string Sprite3DWithSkinTest::getAnimationQualityMessage ( ) const

在文件 Sprite3DTest.cpp972 行定义.

973{
974 if (_animateQuality == (int)Animate3DQuality::QUALITY_NONE)
975 return "None Quality";
976 else if (_animateQuality == (int)Animate3DQuality::QUALITY_LOW)
977 return "Low Quality";
978 else if (_animateQuality == (int)Animate3DQuality::QUALITY_HIGH)
979 return "High Quality";
980
981 return "";
982}

引用了 _animateQuality.

被这些函数引用 Sprite3DWithSkinTest() , 以及 switchAnimationQualityCallback().

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

◆ onTouchesEnded()

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

在文件 Sprite3DTest.cpp1000 行定义.

1001{
1002 for (auto touch : touches)
1003 {
1004 auto location = touch->getLocation();
1005
1006 addNewSpriteWithCoords(location);
1007 }
1008}

引用了 addNewSpriteWithCoords().

被这些函数引用 Sprite3DWithSkinTest().

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

◆ subtitle()

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

重载 TestCase .

在文件 Sprite3DTest.cpp932 行定义.

933{
934 return "Tap screen to add more sprite3D";
935}

◆ switchAnimationQualityCallback()

void Sprite3DWithSkinTest::switchAnimationQualityCallback ( cocos2d::Ref *  sender)

在文件 Sprite3DTest.cpp984 行定义.

985{
987 if (_animateQuality > (int)Animate3DQuality::QUALITY_HIGH)
988 _animateQuality = (int)Animate3DQuality::QUALITY_NONE;
989
991
992 for (auto iter : _sprits)
993 {
994 RepeatForever* repAction = dynamic_cast<RepeatForever*>(iter->getActionByTag(110));
995 Animate3D* animate3D = dynamic_cast<Animate3D*>(repAction->getInnerAction());
996 animate3D->setQuality((Animate3DQuality)_animateQuality);
997 }
998}

引用了 _animateQuality, _menuItem, _sprits , 以及 getAnimationQualityMessage().

被这些函数引用 Sprite3DWithSkinTest().

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

◆ title()

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

重载 Sprite3DTestDemo .

在文件 Sprite3DTest.cpp928 行定义.

929{
930 return "Testing Sprite3D";
931}

类成员变量说明

◆ _animateQuality

int Sprite3DWithSkinTest::_animateQuality
private

◆ _menuItem

cocos2d::MenuItemFont* Sprite3DWithSkinTest::_menuItem
private

在文件 Sprite3DTest.h234 行定义.

被这些函数引用 Sprite3DWithSkinTest() , 以及 switchAnimationQualityCallback().

◆ _sprits

std::vector<cocos2d::Sprite3D*> Sprite3DWithSkinTest::_sprits
private

在文件 Sprite3DTest.h232 行定义.

被这些函数引用 addNewSpriteWithCoords(), Sprite3DWithSkinTest() , 以及 switchAnimationQualityCallback().


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