PuzzleSDK
RemoveAndRetainNodeTest类 参考

#include <NewEventDispatcherTest.h>

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

Public 成员函数

 CREATE_FUNC (RemoveAndRetainNodeTest)
 
virtual void onEnter () override
 
virtual void onExit () override
 
virtual std::string title () const override
 
virtual std::string subtitle () const override
 
- 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
 

Private 属性

cocos2d::Sprite * _sprite
 
bool _spriteSaved
 

额外继承的成员函数

- 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
 

详细描述

在文件 NewEventDispatcherTest.h107 行定义.

成员函数说明

◆ CREATE_FUNC()

RemoveAndRetainNodeTest::CREATE_FUNC ( RemoveAndRetainNodeTest  )

◆ onEnter()

void RemoveAndRetainNodeTest::onEnter ( )
overridevirtual

重载 TestCase .

在文件 NewEventDispatcherTest.cpp556 行定义.

557{
558 _spriteSaved = false;
559
561
562 Vec2 origin = Director::getInstance()->getVisibleOrigin();
563 Size size = Director::getInstance()->getVisibleSize();
564
565 _sprite = Sprite::create("Images/CyanSquare.png");
566 _sprite->setPosition(origin+Vec2(size.width/2, size.height/2));
567 addChild(_sprite, 10);
568
569 // Make sprite1 touchable
570 auto listener1 = EventListenerTouchOneByOne::create();
571 listener1->setSwallowTouches(true);
572
573 listener1->onTouchBegan = [](Touch* touch, Event* event){
574 auto target = static_cast<Sprite*>(event->getCurrentTarget());
575
576 Vec2 locationInNode = target->convertToNodeSpace(touch->getLocation());
577 Size s = target->getContentSize();
578 Rect rect = Rect(0, 0, s.width, s.height);
579
580 if (rect.containsPoint(locationInNode))
581 {
582 log("sprite began... x = %f, y = %f", locationInNode.x, locationInNode.y);
583 target->setOpacity(180);
584 return true;
585 }
586 return false;
587 };
588
589 listener1->onTouchMoved = [](Touch* touch, Event* event){
590 auto target = static_cast<Sprite*>(event->getCurrentTarget());
591 target->setPosition(target->getPosition() + touch->getDelta());
592 };
593
594 listener1->onTouchEnded = [=](Touch* touch, Event* event){
595 auto target = static_cast<Sprite*>(event->getCurrentTarget());
596 log("sprite onTouchesEnded.. ");
597 target->setOpacity(255);
598 };
599
600 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener1, _sprite);
601
602 this->runAction(Sequence::create(DelayTime::create(5.0f),
603 CallFunc::create([this](){
604 _spriteSaved = true;
605 _sprite->retain();
606 _sprite->removeFromParentAndCleanup(false);
607 }),
608 DelayTime::create(5.0f),
609 CallFunc::create([this](){
610 _spriteSaved = false;
611 this->addChild(_sprite);
612 _sprite->release();
613 }),
614 nullptr
615 ));
616}
virtual void onEnter() override
Definition: BaseTest.cpp:430

引用了 _sprite, _spriteSaved , 以及 TestCase::onEnter().

+ 函数调用图:

◆ onExit()

void RemoveAndRetainNodeTest::onExit ( )
overridevirtual

在文件 NewEventDispatcherTest.cpp618 行定义.

619{
620 EventDispatcherTestDemo::onExit();
621 if (_spriteSaved)
622 {
623 _sprite->release();
624 }
625}

引用了 _sprite , 以及 _spriteSaved.

◆ subtitle()

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

重载 TestCase .

在文件 NewEventDispatcherTest.cpp632 行定义.

633{
634 return "Sprite should be removed after 5s, add to scene again after 5s";
635}

◆ title()

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

重载 EventDispatcherTestDemo .

在文件 NewEventDispatcherTest.cpp627 行定义.

628{
629 return "RemoveAndRetainNodeTest";
630}

类成员变量说明

◆ _sprite

cocos2d::Sprite* RemoveAndRetainNodeTest::_sprite
private

在文件 NewEventDispatcherTest.h116 行定义.

被这些函数引用 onEnter() , 以及 onExit().

◆ _spriteSaved

bool RemoveAndRetainNodeTest::_spriteSaved
private

在文件 NewEventDispatcherTest.h117 行定义.

被这些函数引用 onEnter() , 以及 onExit().


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