PuzzleSDK
NewClippingNodeTest类 参考

#include <NewRendererTest.h>

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

Public 成员函数

 CREATE_FUNC (NewClippingNodeTest)
 
virtual std::string title () const override
 
virtual std::string subtitle () const override
 
void onTouchesBegan (const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
 
void onTouchesMoved (const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
 
void onTouchesEnded (const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
 
- 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 成员函数

 NewClippingNodeTest ()
 
virtual ~NewClippingNodeTest ()
 

Protected 属性

bool _scrolling
 
cocos2d::Vec2 _lastPoint
 
- 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
 

详细描述

在文件 NewRendererTest.h77 行定义.

构造及析构函数说明

◆ NewClippingNodeTest()

NewClippingNodeTest::NewClippingNodeTest ( )
protected

在文件 NewRendererTest.cpp236 行定义.

237{
238 auto s = Director::getInstance()->getWinSize();
239
240 auto clipper = ClippingNode::create();
241 clipper->setTag( kTagClipperNode );
242 clipper->setContentSize( Size(200.0f, 200.0f) );
243 clipper->setAnchorPoint( Vec2(0.5f, 0.5f) );
244 clipper->setPosition( Vec2(s.width / 2, s.height / 2) );
245
246 clipper->runAction(RepeatForever::create(RotateBy::create(1, 45)));
247 this->addChild(clipper);
248
249 // TODO: Fix draw node as clip node
250// auto stencil = NewDrawNode::create();
251// Vec2 rectangle[4];
252// rectangle[0] = Vec2(0, 0);
253// rectangle[1] = Vec2(clipper->getContentSize().width, 0);
254// rectangle[2] = Vec2(clipper->getContentSize().width, clipper->getContentSize().height);
255// rectangle[3] = Vec2(0, clipper->getContentSize().height);
256//
257// Color4F white(1, 1, 1, 1);
258// stencil->drawPolygon(rectangle, 4, white, 1, white);
259// clipper->setStencil(stencil);
260
261 //Test with alpha Test
262 clipper->setAlphaThreshold(0.05f);
263 auto stencil = Sprite::create("Images/grossini.png");
264 stencil->setPosition(s.width/2, s.height/2);
265 clipper->setStencil(stencil);
266
267 auto content = Sprite::create("Images/background2.png");
268 content->setTag( kTagContentNode );
269 content->setAnchorPoint( Vec2(0.5f, 0.5f) );
270 content->setPosition( Vec2(clipper->getContentSize().width / 2, clipper->getContentSize().height / 2) );
271 clipper->addChild(content);
272
273 _scrolling = false;
274
275 auto listener = EventListenerTouchAllAtOnce::create();
276 listener->onTouchesBegan = CC_CALLBACK_2(NewClippingNodeTest::onTouchesBegan, this);
277 listener->onTouchesMoved = CC_CALLBACK_2(NewClippingNodeTest::onTouchesMoved, this);
278 listener->onTouchesEnded = CC_CALLBACK_2(NewClippingNodeTest::onTouchesEnded, this);
279 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
280}
@ kTagContentNode
@ kTagClipperNode
void onTouchesMoved(const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
void onTouchesEnded(const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
void onTouchesBegan(const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)

引用了 _scrolling, kTagClipperNode, kTagContentNode, onTouchesBegan(), onTouchesEnded() , 以及 onTouchesMoved().

+ 函数调用图:

◆ ~NewClippingNodeTest()

NewClippingNodeTest::~NewClippingNodeTest ( )
protectedvirtual

在文件 NewRendererTest.cpp282 行定义.

283{
284
285}

成员函数说明

◆ CREATE_FUNC()

NewClippingNodeTest::CREATE_FUNC ( NewClippingNodeTest  )

◆ onTouchesBegan()

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

在文件 NewRendererTest.cpp297 行定义.

298{
299 Touch *touch = touches[0];
300 auto clipper = this->getChildByTag(kTagClipperNode);
301 Vec2 point = clipper->convertToNodeSpace(Director::getInstance()->convertToGL(touch->getLocationInView()));
302 auto rect = Rect(0, 0, clipper->getContentSize().width, clipper->getContentSize().height);
303 _scrolling = rect.containsPoint(point);
304 _lastPoint = point;
305}
cocos2d::Vec2 _lastPoint

引用了 _lastPoint, _scrolling , 以及 kTagClipperNode.

被这些函数引用 NewClippingNodeTest().

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

◆ onTouchesEnded()

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

在文件 NewRendererTest.cpp319 行定义.

320{
321 if (!_scrolling) return;
322 _scrolling = false;
323}

引用了 _scrolling.

被这些函数引用 NewClippingNodeTest().

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

◆ onTouchesMoved()

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

在文件 NewRendererTest.cpp307 行定义.

308{
309 if (!_scrolling) return;
310 Touch *touch = touches[0];
311 auto clipper = this->getChildByTag(kTagClipperNode);
312 auto point = clipper->convertToNodeSpace(Director::getInstance()->convertToGL(touch->getLocationInView()));
313 Vec2 diff = point - _lastPoint;
314 auto content = clipper->getChildByTag(kTagContentNode);
315 content->setPosition(content->getPosition() + diff);
316 _lastPoint = point;
317}

引用了 _lastPoint, _scrolling, kTagClipperNode , 以及 kTagContentNode.

被这些函数引用 NewClippingNodeTest().

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

◆ subtitle()

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

重载 MultiSceneTest .

在文件 NewRendererTest.cpp292 行定义.

293{
294 return "ClipNode";
295}

◆ title()

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

重载 MultiSceneTest .

在文件 NewRendererTest.cpp287 行定义.

288{
289 return "New Render";
290}

类成员变量说明

◆ _lastPoint

cocos2d::Vec2 NewClippingNodeTest::_lastPoint
protected

在文件 NewRendererTest.h94 行定义.

被这些函数引用 onTouchesBegan() , 以及 onTouchesMoved().

◆ _scrolling

bool NewClippingNodeTest::_scrolling
protected

在文件 NewRendererTest.h93 行定义.

被这些函数引用 NewClippingNodeTest(), onTouchesBegan(), onTouchesEnded() , 以及 onTouchesMoved().


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