PuzzleSDK
UIScale9SpriteTouchTest类 参考

#include <UIScale9SpriteTest.h>

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

Public 成员函数

 CREATE_FUNC (UIScale9SpriteTouchTest)
 
 UIScale9SpriteTouchTest ()
 
 ~UIScale9SpriteTouchTest ()
 
virtual bool init () override
 
- Public 成员函数 继承自 UIScene
 UIScene ()
 
 ~UIScene ()
 
virtual void onEnter () override
 
- Public 成员函数 继承自 TestCase
 TestCase ()
 
 ~TestCase ()
 
virtual std::string title () const
 
virtual std::string subtitle () const
 
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
 

额外继承的成员函数

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

详细描述

在文件 UIScale9SpriteTest.h54 行定义.

构造及析构函数说明

◆ UIScale9SpriteTouchTest()

UIScale9SpriteTouchTest::UIScale9SpriteTouchTest ( )

在文件 UIScale9SpriteTest.cpp189 行定义.

190{
191
192}

◆ ~UIScale9SpriteTouchTest()

UIScale9SpriteTouchTest::~UIScale9SpriteTouchTest ( )

在文件 UIScale9SpriteTest.cpp194 行定义.

195{
196}

成员函数说明

◆ CREATE_FUNC()

UIScale9SpriteTouchTest::CREATE_FUNC ( UIScale9SpriteTouchTest  )

◆ init()

bool UIScale9SpriteTouchTest::init ( )
overridevirtual

重载 UIScene .

在文件 UIScale9SpriteTest.cpp198 行定义.

199{
200 if (UIScene::init())
201 {
202
203 Vec2 origin = Director::getInstance()->getVisibleOrigin();
204 Size size = Director::getInstance()->getVisibleSize();
205
206 auto containerForSprite1 = Node::create();
207 auto sprite1 = cocos2d::ui::Scale9Sprite::create("Images/CyanSquare.png");
208 sprite1->setPosition(origin+Vec2(size.width/2, size.height/2) + Vec2(-80.0f, 80.0f));
209 containerForSprite1->addChild(sprite1);
210 addChild(containerForSprite1, 10);
211
212 auto sprite2 = ui::Scale9Sprite::create("Images/MagentaSquare.png");
213 sprite2->setPosition(origin+Vec2(size.width/2, size.height/2));
214
215
216 addChild(sprite2, 20);
217
218 auto sprite3 = ui::Scale9Sprite::create("Images/YellowSquare.png");
219 sprite3->setPosition(Vec2(0.0f, 0.0f));
220 sprite3->setCascadeOpacityEnabled(false);
221 sprite2->addChild(sprite3, 1);
222
223
224 // Make sprite1 touchable
225 auto listener1 = EventListenerTouchOneByOne::create();
226 listener1->setSwallowTouches(true);
227
228 listener1->onTouchBegan = [](Touch* touch, Event* event){
229 auto target = static_cast<Sprite*>(event->getCurrentTarget());
230
231 Vec2 locationInNode = target->convertToNodeSpace(touch->getLocation());
232 Size s = target->getContentSize();
233 Rect rect = Rect(0, 0, s.width, s.height);
234
235 if (rect.containsPoint(locationInNode))
236 {
237 log("sprite began... x = %f, y = %f", locationInNode.x, locationInNode.y);
238 target->setOpacity(180);
239 return true;
240 }
241 return false;
242 };
243
244 listener1->onTouchMoved = [](Touch* touch, Event* event){
245 auto target = static_cast<Sprite*>(event->getCurrentTarget());
246 target->setPosition(target->getPosition() + touch->getDelta());
247 };
248
249 listener1->onTouchEnded = [=](Touch* touch, Event* event){
250 auto target = static_cast<ui::Scale9Sprite*>(event->getCurrentTarget());
251 log("sprite onTouchesEnded.. ");
252 target->setOpacity(255);
253 if (target == sprite2)
254 {
255 containerForSprite1->setLocalZOrder(100);
256 }
257 else if(target == sprite1)
258 {
259 containerForSprite1->setLocalZOrder(0);
260 }
261 };
262
263 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener1, sprite1);
264 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener1->clone(), sprite2);
265 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener1->clone(), sprite3);
266
267 return true;
268 }
269 return false;
270}
virtual bool init() override
Definition: UIScene.cpp:46

引用了 UIScene::init().

+ 函数调用图:

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