PuzzleSDK
Animate3DTest类 参考

#include <Sprite3DTest.h>

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

Public 成员函数

 CREATE_FUNC (Animate3DTest)
 
 Animate3DTest ()
 
 ~Animate3DTest ()
 
virtual std::string title () const override
 
virtual std::string subtitle () const override
 
void onTouchesEnded (const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
 
virtual void update (float dt) override
 
- 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 类型

enum class  State { SWIMMING , SWIMMING_TO_HURT , HURT , HURT_TO_SWIMMING }
 

Protected 成员函数

void addSprite3D ()
 
void reachEndCallBack ()
 
void renewCallBack ()
 

Protected 属性

cocos2d::Sprite3D * _sprite
 
cocos2d::Action * _swim
 
cocos2d::Animate3D * _hurt
 
float _elapseTransTime
 
State _state
 
cocos2d::MoveTo * _moveAction
 
- 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.h258 行定义.

成员枚举类型说明

◆ State

enum class Animate3DTest::State
strongprotected
枚举值
SWIMMING 
SWIMMING_TO_HURT 
HURT 
HURT_TO_SWIMMING 

在文件 Sprite3DTest.h274 行定义.

275 {
276 SWIMMING,
277 SWIMMING_TO_HURT,
278 HURT,
279 HURT_TO_SWIMMING,
280 };

构造及析构函数说明

◆ Animate3DTest()

Animate3DTest::Animate3DTest ( )

在文件 Sprite3DTest.cpp1096 行定义.

1097 : _sprite(nullptr)
1098 , _swim(nullptr)
1099 , _hurt(nullptr)
1100 , _elapseTransTime(0.f)
1101 , _moveAction(nullptr)
1102{
1103 addSprite3D();
1104
1105 auto listener = EventListenerTouchAllAtOnce::create();
1106 listener->onTouchesEnded = CC_CALLBACK_2(Animate3DTest::onTouchesEnded, this);
1107 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
1108
1109 scheduleUpdate();
1110}
cocos2d::Action * _swim
Definition: Sprite3DTest.h:288
cocos2d::MoveTo * _moveAction
Definition: Sprite3DTest.h:295
float _elapseTransTime
Definition: Sprite3DTest.h:291
void onTouchesEnded(const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
cocos2d::Sprite3D * _sprite
Definition: Sprite3DTest.h:286
cocos2d::Animate3D * _hurt
Definition: Sprite3DTest.h:289

引用了 addSprite3D() , 以及 onTouchesEnded().

+ 函数调用图:

◆ ~Animate3DTest()

Animate3DTest::~Animate3DTest ( )

在文件 Sprite3DTest.cpp1112 行定义.

1113{
1114 CC_SAFE_RELEASE(_moveAction);
1115 CC_SAFE_RELEASE(_hurt);
1116 CC_SAFE_RELEASE(_swim);
1117}

引用了 _hurt, _moveAction , 以及 _swim.

成员函数说明

◆ addSprite3D()

void Animate3DTest::addSprite3D ( )
protected

在文件 Sprite3DTest.cpp1152 行定义.

1153{
1154 std::string fileName = "Sprite3DTest/tortoise.c3b";
1155 auto sprite = Sprite3D::create(fileName);
1156 sprite->setScale(0.1f);
1157 auto s = Director::getInstance()->getWinSize();
1158 sprite->setPosition(Vec2(s.width * 4.f / 5.f, s.height / 2.f));
1159 addChild(sprite);
1160 _sprite = sprite;
1161 auto animation = Animation3D::create(fileName);
1162 if (animation)
1163 {
1164 auto animate = Animate3D::create(animation, 0.f, 1.933f);
1165 _swim = RepeatForever::create(animate);
1166 sprite->runAction(_swim);
1167
1168 _swim->retain();
1169 _hurt = Animate3D::create(animation, 1.933f, 2.8f);
1170 _hurt->retain();
1172 }
1173
1174 _moveAction = MoveTo::create(4.f, Vec2(s.width / 5.f, s.height / 2.f));
1175 _moveAction->retain();
1176 auto seq = Sequence::create(_moveAction, CallFunc::create(CC_CALLBACK_0(Animate3DTest::reachEndCallBack, this)), nullptr);
1177 seq->setTag(100);
1178 sprite->runAction(seq);
1179}
void reachEndCallBack()

引用了 _hurt, _moveAction, _sprite, _state, _swim, reachEndCallBack() , 以及 SWIMMING.

被这些函数引用 Animate3DTest().

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

◆ CREATE_FUNC()

Animate3DTest::CREATE_FUNC ( Animate3DTest  )

◆ onTouchesEnded()

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

在文件 Sprite3DTest.cpp1203 行定义.

1204{
1205 for (auto touch : touches)
1206 {
1207 auto location = touch->getLocation();
1208
1209 if (_sprite)
1210 {
1211 float len = (_sprite->getPosition() - location).length();
1212 if (len < 40)
1213 {
1214 //hurt the tortoise
1215 if (_state == State::SWIMMING)
1216 {
1217 _elapseTransTime = 0.0f;
1219 _sprite->stopAction(_hurt);
1220 _sprite->runAction(_hurt);
1221 auto delay = DelayTime::create(_hurt->getDuration() - Animate3D::getTransitionTime());
1222 auto seq = Sequence::create(delay, CallFunc::create(CC_CALLBACK_0(Animate3DTest::renewCallBack, this)), nullptr);
1223 seq->setTag(101);
1224 _sprite->runAction(seq);
1225 }
1226 return;
1227 }
1228 }
1229 }
1230}

引用了 _elapseTransTime, _hurt, _sprite, _state, renewCallBack(), SWIMMING , 以及 SWIMMING_TO_HURT.

被这些函数引用 Animate3DTest().

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

◆ reachEndCallBack()

void Animate3DTest::reachEndCallBack ( )
protected

在文件 Sprite3DTest.cpp1181 行定义.

1182{
1183 auto s = Director::getInstance()->getWinSize();
1184 _sprite->stopActionByTag(100);
1185 auto inverse = MoveTo::create(4.f, Vec2(s.width - _sprite->getPositionX(), s.height / 2.f));
1186 inverse->retain();
1187 _moveAction->release();
1188 _moveAction = inverse;
1189 auto rot = RotateBy::create(1.f, Vec3(0.f, 180.f, 0.f));
1190 auto seq = Sequence::create(rot, _moveAction, CallFunc::create(CC_CALLBACK_0(Animate3DTest::reachEndCallBack, this)), nullptr);
1191 seq->setTag(100);
1192 _sprite->runAction(seq);
1193}

引用了 _moveAction, _sprite , 以及 reachEndCallBack().

被这些函数引用 addSprite3D() , 以及 reachEndCallBack().

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

◆ renewCallBack()

void Animate3DTest::renewCallBack ( )
protected

在文件 Sprite3DTest.cpp1195 行定义.

1196{
1197 //rerun swim action
1198 _sprite->runAction(_swim);
1200 _elapseTransTime = 0.0f;
1201}

引用了 _elapseTransTime, _sprite, _state, _swim , 以及 HURT_TO_SWIMMING.

被这些函数引用 onTouchesEnded().

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

◆ subtitle()

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

重载 TestCase .

在文件 Sprite3DTest.cpp1124 行定义.

1125{
1126 return "Touch to beat the tortoise";
1127}

◆ title()

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

重载 Sprite3DTestDemo .

在文件 Sprite3DTest.cpp1119 行定义.

1120{
1121 return "Testing Animate3D";
1122}

◆ update()

void Animate3DTest::update ( float  dt)
overridevirtual

在文件 Sprite3DTest.cpp1129 行定义.

1130{
1132 {
1133 _elapseTransTime += dt;
1134
1135 if (_elapseTransTime >= Animate3D::getTransitionTime())
1136 {
1137 _sprite->stopAction(_hurt);
1139 }
1140 }
1141 else if (_state == State::SWIMMING_TO_HURT)
1142 {
1143 _elapseTransTime += dt;
1144 if (_elapseTransTime >= Animate3D::getTransitionTime())
1145 {
1146 _sprite->stopAction(_swim);
1148 }
1149 }
1150}

引用了 _elapseTransTime, _hurt, _sprite, _state, _swim, HURT, HURT_TO_SWIMMING, SWIMMING , 以及 SWIMMING_TO_HURT.

类成员变量说明

◆ _elapseTransTime

float Animate3DTest::_elapseTransTime
protected

在文件 Sprite3DTest.h291 行定义.

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

◆ _hurt

cocos2d::Animate3D* Animate3DTest::_hurt
protected

在文件 Sprite3DTest.h289 行定义.

被这些函数引用 addSprite3D(), onTouchesEnded(), update() , 以及 ~Animate3DTest().

◆ _moveAction

cocos2d::MoveTo* Animate3DTest::_moveAction
protected

在文件 Sprite3DTest.h295 行定义.

被这些函数引用 addSprite3D(), reachEndCallBack() , 以及 ~Animate3DTest().

◆ _sprite

cocos2d::Sprite3D* Animate3DTest::_sprite
protected

在文件 Sprite3DTest.h286 行定义.

被这些函数引用 addSprite3D(), onTouchesEnded(), reachEndCallBack(), renewCallBack() , 以及 update().

◆ _state

State Animate3DTest::_state
protected

在文件 Sprite3DTest.h293 行定义.

被这些函数引用 addSprite3D(), onTouchesEnded(), renewCallBack() , 以及 update().

◆ _swim

cocos2d::Action* Animate3DTest::_swim
protected

在文件 Sprite3DTest.h288 行定义.

被这些函数引用 addSprite3D(), renewCallBack(), update() , 以及 ~Animate3DTest().


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