29#include "../testResource.h"
48CocosNodeTests::CocosNodeTests()
101 auto s = Director::getInstance()->getWinSize();
108 sp1->setPosition(Vec2(100.0f, s.height /2 ));
109 sp2->setPosition(Vec2(380.0f, s.height /2 ));
113 sp3->setScale(0.25f);
114 sp4->setScale(0.25f);
119 auto a1 = RotateBy::create(2, 360);
120 auto a2 = ScaleBy::create(2, 2);
122 auto action1 = RepeatForever::create( Sequence::create(a1, a2, a2->reverse(),
nullptr) );
123 auto action2 = RepeatForever::create( Sequence::create(
130 sp2->setAnchorPoint(Vec2(0,0));
132 sp1->runAction(action1);
133 sp2->runAction(action2);
138 return "anchorPoint and children";
155 sp1->setPosition( Vec2(100,160) );
156 sp2->setPosition( Vec2(380,160) );
167 auto node =
static_cast<Sprite*
>(getChildByTag(2));
168 auto action1 = RotateBy::create(1, 360);
169 node->runAction(action1);
174 unschedule(
"delay4_key");
175 removeChildByTag(3,
false);
194 sp1->setPosition(Vec2(100.0f,160.0f));
195 sp2->setPosition(Vec2(380.0f,160.0f));
197 auto rot = RotateBy::create(2.0f, 360.0f);
198 auto rot_back = rot->reverse();
199 auto forever = RepeatForever::create(Sequence::create(rot, rot_back,
nullptr));
200 auto forever2 = forever->clone();
201 forever->setTag(101);
202 forever2->setTag(102);
207 sp1->runAction(forever);
208 sp2->runAction(forever2);
221 removeChild(sp1,
false);
222 removeChild(sp2,
true);
233 return "remove and cleanup";
249 sp1->setPosition(Vec2(100.0f,160.0f));
250 sp2->setPosition(Vec2(380.0f,160.0f));
252 auto rot = RotateBy::create(2.0f, 360.0f);
253 auto rot_back = rot->reverse();
254 auto forever1 = RepeatForever::create(Sequence::create(rot, rot_back,
nullptr));
255 auto forever11 = forever1->clone();
257 auto forever2 = forever1->clone();
258 auto forever21 = forever1->clone();
265 sp1->runAction(forever1);
266 sp11->runAction(forever11);
267 sp2->runAction(forever2);
268 sp21->runAction(forever21);
281 removeChild(sp1,
false);
282 removeChild(sp2,
true);
294 return "remove/cleanup with children";
305 auto s = Director::getInstance()->getWinSize();
310 sp1->setPosition( Vec2(s.width/2, s.height/2) );
317 unschedule(
"should_not_crash_key");
319 auto s = Director::getInstance()->getWinSize();
322 auto explosion = ParticleSun::create();
323 explosion->setTexture(Director::getInstance()->getTextureCache()->addImage(
"Images/fire.png"));
328 explosion->setPosition( Vec2(s.width/2, s.height/2) );
330 runAction( Sequence::create(
331 RotateBy::create(2, 360),
347 return "stress test #1: no crashes";
357 auto s = Director::getInstance()->getWinSize();
359 auto sublayer = Layer::create();
362 sp1->setPosition( Vec2(80.0f, s.height/2) );
364 auto move = MoveBy::create(3, Vec2(350.0f,0.0f));
365 auto move_ease_inout3 = EaseInOut::create(move->clone(), 2.0f);
366 auto move_ease_inout_back3 = move_ease_inout3->reverse();
367 auto seq3 = Sequence::create( move_ease_inout3, move_ease_inout_back3,
nullptr);
368 sp1->runAction( RepeatForever::create(seq3) );
369 sublayer->addChild(sp1, 1);
371 auto fire = ParticleFire::create();
372 fire->setTexture(Director::getInstance()->getTextureCache()->addImage(
"Images/fire.png"));
373 fire->setPosition( Vec2(80.0f, s.height/2-50) );
375 auto copy_seq3 = seq3->clone();
377 fire->runAction( RepeatForever::create(copy_seq3) );
378 sublayer->addChild(fire, 2);
387 unschedule(
"should_not_leak_key");
388 auto sublayer =
static_cast<Layer*
>( getChildByTag(
kTagSprite1) );
389 sublayer->removeAllChildrenWithCleanup(
true);
394 return "stress test #2: no leaks";
405 auto layer = Layer::create();
414 layer->unschedule(
"do_something_key");
425 return "cocosnode scheduler test #1";
435 auto node = Node::create();
437 node->setName(
"a node");
440 node->schedule([&](
float dt) {
442 log(
"hello world: %f - total: %f", dt,
_total);
448 node->scheduleOnce([&](
float dt) {
450 auto anode = this->getChildByName(
"a node");
451 anode->unschedule(
"some_key");
460 log(
"--onEnter-- Must be called before the scheduled lambdas");
465 return "Node scheduler with lambda";
480 auto back = Sprite::create(
s_back3);
481 addChild( back, -10);
482 back->setAnchorPoint( Vec2(0,0) );
483 auto backSize = back->getContentSize();
486 auto menu = Menu::create(item,
nullptr);
487 menu->alignItemsVertically();
488 menu->setPosition( Vec2(backSize.width/2, backSize.height/2));
489 back->addChild(menu);
491 auto rot = RotateBy::create(5.0f, 360.0f);
492 auto fe = RepeatForever::create( rot);
493 item->runAction( fe );
495 auto move = MoveBy::create(3.0f, Vec2(200.0f,0.0f));
496 auto move_back = move->reverse();
497 auto seq = Sequence::create( move, move_back,
nullptr);
498 auto fe2 = RepeatForever::create(seq);
499 back->runAction(fe2);
504 return "nodeToParent transform";
519 Size s = Director::getInstance()->getWinSize();
520 auto parent = Node::create();
521 parent->setContentSize(s);
522 parent->setAnchorPoint(Vec2(0.5f, 0.5f));
523 parent->setPosition(s.width/2, s.height/2);
524 this->addChild(parent);
526 auto back = Sprite::create(
s_back3);
527 parent->addChild( back, -10);
528 back->setAnchorPoint( Vec2(0.0f,0.0f) );
529 auto backSize = back->getContentSize();
532 auto menu = Menu::create(item,
nullptr);
533 menu->alignItemsVertically();
534 menu->setPosition( Vec2(backSize.width/2, backSize.height/2));
535 back->addChild(menu);
537 auto rot = RotateBy::create(5, 360);
538 auto fe = RepeatForever::create( rot);
539 item->runAction( fe );
541 auto move = MoveBy::create(3, Vec2(200.0f,0.0f));
542 auto move_back = move->reverse();
543 auto seq = Sequence::create( move, move_back,
nullptr);
544 auto fe2 = RepeatForever::create(seq);
545 back->runAction(fe2);
547 auto orbit = OrbitCamera::create(10, 0, 1, 0, 360, 0, 90);
548 parent->runAction(orbit);
553 return "nodeToParent transform in 3D";
566 Director::getInstance()->getRenderer()->setDepthTest(
true);
567 Director::getInstance()->getRenderer()->setDepthWrite(
true);
568 Director::getInstance()->setProjection(Director::Projection::_3D);
573 Director::getInstance()->getRenderer()->setDepthTest(
false);
574 Director::getInstance()->getRenderer()->setDepthWrite(
false);
576 TestCocosNodeDemo::onExit();
581 auto s = Director::getInstance()->getWinSize();
583 auto p = Sprite::create(
s_back3);
585 p->setPosition( Vec2(s.width/2, s.height/2) );
586 p->setOpacity( 128 );
593 s = p->getContentSize();
595 sprite->setScale(0.5f);
596 p->addChild(sprite, 0);
597 sprite->setPosition( Vec2(s.width/4*1, s.height/2) );
598 orbit = OrbitCamera::create(2, 1, 0, 0, 360, 0, 0);
599 sprite->runAction( RepeatForever::create( orbit ) );
603 sprite->setScale( 1.0f );
604 p->addChild(sprite, 0);
605 sprite->setPosition( Vec2(s.width/4*2, s.height/2) );
606 orbit = OrbitCamera::create(2, 1, 0, 0, 360, 45, 0);
607 sprite->runAction( RepeatForever::create( orbit ) );
612 sprite->setScale( 2.0f );
613 p->addChild(sprite, 0);
614 sprite->setPosition( Vec2(s.width/4*3, s.height/2) );
615 ss = sprite->getContentSize();
616 orbit = OrbitCamera::create(2, 1, 0, 0, 360, 90, -45),
617 sprite->runAction( RepeatForever::create(orbit) );
621 orbit = OrbitCamera::create(10, 1, 0, 0, 360, 0, 90);
622 p->runAction( RepeatForever::create( orbit ) );
629 return "Camera Orbit test";
642 Director::getInstance()->setProjection(Director::Projection::_3D);
648 TestCocosNodeDemo::onExit();
653 auto s = Director::getInstance()->getWinSize();
660 addChild( sprite, 0);
661 sprite->setPosition( Vec2(s.width/4*1, s.height/2) );
668 addChild( sprite, 0, 40);
669 sprite->setPosition(Vec2(s.width/4*2, s.height/2));
673 addChild( sprite, 0, 20);
674 sprite->setPosition(Vec2(s.width/4*3, s.height/2));
687 sprite = getChildByTag(20);
691 sprite = getChildByTag(40);
698 return "Camera Zoom test";
710 Director::getInstance()->setProjection(Director::Projection::_3D);
715 TestCocosNodeDemo::onExit();
721 auto s = Director::getInstance()->getWinSize();
727 sprite = Sprite::create(
"Images/white-512x512.png");
728 addChild( sprite, 0);
729 sprite->setPosition(Vec2(s.width/5*1, s.height/5*1));
730 sprite->setColor(Color3B::RED);
731 sprite->setTextureRect(Rect(0.0f, 0.0f, 120.0f, 50.0f));
732 orbit = OrbitCamera::create(10.0f, 1.0f, 0.0f, 0.0f, 360.0f, 0.0f, 0.0f);
733 sprite->runAction(RepeatForever::create( orbit ));
739 sprite = Sprite::create(
"Images/white-512x512.png");
740 addChild( sprite, 0, 40);
741 sprite->setPosition(Vec2(s.width/5*1, s.height/5*4));
742 sprite->setColor(Color3B::BLUE);
743 sprite->setTextureRect(Rect(0.0f, 0.0f, 120.0f, 50.0f));
744 orbit = OrbitCamera::create(10.0f, 1.0f, 0.0f, 0.0f, 360.0f, 0.0f, 0.0f);
745 sprite->runAction(RepeatForever::create( orbit ));
749 sprite = Sprite::create(
"Images/white-512x512.png");
750 addChild( sprite, 0);
751 sprite->setPosition(Vec2(s.width/5*4, s.height/5*1));
752 sprite->setColor(Color3B::YELLOW);
753 sprite->setTextureRect(Rect(0.0f, 0.0f, 120.0f, 50.0f));
754 orbit = OrbitCamera::create(10.0f, 1.0f, 0.0f, 0.0f, 360.0f, 0.0f, 0.0f);
755 sprite->runAction(RepeatForever::create( orbit) );
759 sprite = Sprite::create(
"Images/white-512x512.png");
760 addChild( sprite, 0, 40);
761 sprite->setPosition(Vec2(s.width/5*4, s.height/5*4));
762 sprite->setColor(Color3B::GREEN);
763 sprite->setTextureRect(Rect(0.0f, 0.0f, 120.0f, 50.0f));
764 orbit = OrbitCamera::create(10.0f, 1.0f, 0.0f, 0.0f, 360.0f, 0.0f, 0.0f);
765 sprite->runAction( RepeatForever::create( orbit ) );
768 sprite = Sprite::create(
"Images/white-512x512.png");
769 addChild( sprite, 0, 40);
770 sprite->setPosition(Vec2(s.width/2, s.height/2));
771 sprite->setColor(Color3B::WHITE);
772 sprite->setTextureRect(Rect(0.0f, 0.0f, 120.0f, 50.0f));
773 orbit = OrbitCamera::create(10.0f, 1.0f, 0.0f, 0.0f, 360.0f, 0.0f, 0.0f);
774 sprite->runAction(RepeatForever::create( orbit ) );
779 return "Camera Center test";
784 return "Sprites should rotate at the same speed";
794 auto listener = EventListenerTouchAllAtOnce::create();
796 _eventDispatcher->addEventListenerWithSceneGraphPriority(listener,
this);
798 auto s = Director::getInstance()->getWinSize();
800 auto rotate = RotateBy::create(10, 360);
801 auto action = RepeatForever::create(rotate);
802 for(
int i = 0; i < 3; i++)
804 auto sprite = Sprite::create(
"Images/grossini.png");
805 sprite->setPosition(Vec2( s.width/4*(i+1), s.height/2));
807 auto point = Sprite::create(
"Images/r1.png");
808 point->setScale(0.25f);
809 point->setPosition(sprite->getPosition());
810 addChild(point, 10, 100 + i);
815 sprite->setAnchorPoint(Vec2::ZERO);
818 sprite->setAnchorPoint(Vec2(0.5f, 0.5f));
821 sprite->setAnchorPoint(Vec2(1,1));
825 point->setPosition(sprite->getPosition());
827 sprite->runAction( action->clone() );
834 for(
auto& touch : touches)
836 auto location = touch->getLocation();
838 for(
int i = 0; i < 3; i++)
840 auto node = getChildByTag(100+i);
843 p1 = node->convertToNodeSpaceAR(location);
844 p2 = node->convertToNodeSpace(location);
846 CCLOG(
"AR: x=%.2f, y=%.2f -- Not AR: x=%.2f, y=%.2f", p1.x, p1.y, p2.x, p2.y);
853 return "Convert To Node Space";
858 return "testing convertToNodeSpace / AR. Touch and see console";
865 Sprite *background =
nullptr;
867 for (
int i = 0; i < 50; i++)
869 background = Sprite::create(
"Images/background1.png");
870 background->setBlendFunc( BlendFunc::ALPHA_PREMULTIPLIED );
871 background->setAnchorPoint(Vec2::ZERO);
872 addChild(background);
878 return "Node Opaque Test";
883 return "Node rendered with GL_BLEND disabled";
890 Sprite *background =
nullptr;
892 for (
int i = 0; i < 50; i++)
894 background = Sprite::create(
"Images/background1.jpg");
895 background->setBlendFunc(BlendFunc::DISABLE);
896 background->setAnchorPoint(Vec2::ZERO);
897 addChild(background);
903 return "Node Non Opaque Test";
908 return "Node rendered with GL_BLEND enabled";
915 Size s = Director::getInstance()->getWinSize();
916 for (
int i = 0; i < 9; i++)
919 auto parent = Node::create();
921 sprite = Sprite::create(
"Images/grossinis_sister2.png");
926 sprite = Sprite::create(
"Images/grossinis_sister1.png");
928 parent->addChild(sprite);
929 this->addChild(parent);
931 float w = sprite->getContentSize().width;
932 sprite->setPosition(s.width/2 - w*0.7*(i-5), s.height/2);
935 this->scheduleUpdate();
940 static float accum = 0;
944 float z =
_sprite->getGlobalZOrder();
952 return "Global Z Value";
957 return "Center Sprite should change go from foreground to background";
969 auto sprite =
new (std::nothrow)
MySprite;
970 sprite->initWithFile(spritefilename);
971 sprite->autorelease();
972 auto program = backend::Program::getBuiltinProgram(backend::ProgramType::POSITION_TEXTURE_COLOR);
973 auto programState =
new (std::nothrow) backend::ProgramState(program);
974 programState->autorelease();
975 sprite->setProgramState(programState);
978 virtual void setProgramState(backend::ProgramState* programState)
override;
979 virtual void draw(Renderer *renderer,
const Mat4 &transform, uint32_t flags)
override;
988 Sprite::setProgramState(programState);
989 auto& pipelineDescriptor =
_customCommand.getPipelineDescriptor();
990 pipelineDescriptor.programState = programState;
993 _customCommand.setPrimitiveType(CustomCommand::PrimitiveType::TRIANGLE_STRIP);
994 _customCommand.createVertexBuffer(
sizeof(V3F_C4B_T2F), 4, CustomCommand::BufferUsage::STATIC);
1000 const auto& projectionMat = Director::getInstance()->getMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_PROJECTION);
1001 auto mvpMatrix = projectionMat * transform;
1002 _customCommand.getPipelineDescriptor().programState->setUniform(_mvpMatrixLocation, mvpMatrix.m,
sizeof(mvpMatrix.m));
1017 Director::getInstance()->setProjection(Director::Projection::_3D);
1018 Director::getInstance()->getRenderer()->setDepthTest(
true);
1019 Director::getInstance()->getRenderer()->setDepthWrite(
true);
1025 Director::getInstance()->getRenderer()->setDepthTest(
false);
1026 Director::getInstance()->getRenderer()->setDepthWrite(
false);
1027 TestCocosNodeDemo::onExit();
1032 auto s = Director::getInstance()->getWinSize();
1036 _sprite1->setPosition( Vec2(1*s.width/4, s.height/2) );
1041 _sprite2->setPosition( Vec2(3*s.width/4, s.height/2) );
1044 auto camera = OrbitCamera::create(10, 0, 1, 0, 360, 0, 0);
1046 _sprite2->runAction( camera->clone() );
1051 return "Camera Test 1";
1056 return "Both images should rotate with a 3D effect";
1068 Director::getInstance()->setProjection(Director::Projection::_3D);
1069 Director::getInstance()->getRenderer()->setDepthTest(
true);
1070 Director::getInstance()->getRenderer()->setDepthWrite(
true);
1076 Director::getInstance()->getRenderer()->setDepthTest(
false);
1077 Director::getInstance()->getRenderer()->setDepthWrite(
false);
1078 TestCocosNodeDemo::onExit();
1083 auto s = Director::getInstance()->getWinSize();
1087 _sprite1->setPosition( Vec2(1*s.width/4, s.height/2) );
1092 _sprite2->setPosition( Vec2(3*s.width/4, s.height/2) );
1095 Vec3 eye(150, 0, 200), center(0, 0, 0), up(0, 1, 0);
1098 Mat4::createLookAt(eye, center, up, &lookupMatrix);
1100 Mat4 lookupMatrix2 = lookupMatrix;
1102 _sprite1->setAdditionalTransform(&lookupMatrix2);
1103 _sprite2->setAdditionalTransform(&lookupMatrix2);
1109 return "Camera Test 2";
1114 return "Both images should look the same";
1126 positions[0] = Vec2(0.0f,0.0f);
1127 positions[1] = Vec2(0.0f,1.0f);
1128 positions[2] = Vec2(0.5f,0.5f);
1129 positions[3] = Vec2(1.0f,0.0f);
1130 positions[4] = Vec2(1.0f,1.0f);
1132 for(
int i=0; i<5; i++) {
1133 sprites[i] = Sprite::create(
"Images/grossini.png");
1134 sprites[i]->setPositionNormalized(positions[i]);
1135 addChild(sprites[i]);
1141 return "setNormalizedPositon()";
1146 return "5 sprites: One in the center, the others on the corners";
1159 positions[0] = Vec2(0.0f,0.0f);
1160 positions[1] = Vec2(0.0f,1.0f);
1161 positions[2] = Vec2(0.5f,0.5f);
1162 positions[3] = Vec2(1.0f,0.0f);
1163 positions[4] = Vec2(1.0f,1.0f);
1165 for(
int i=0; i<5; i++) {
1166 sprites[i] = Sprite::create(
"Images/grossini.png");
1167 sprites[i]->setPositionNormalized(positions[i]);
1168 addChild(sprites[i]);
1172 setContentSize( Director::getInstance()->getWinSize());
1181 return "setNormalizedPositon() #2";
1186 return "5 sprites: One in the center, the others on the corners of its parents";
1194 float norm = sinf(
_accum);
1198 CCLOG(
"s: %f,%f", s.width, s.height);
1212 position = Vec2(0.5f,0.5f);
1215 sprite = Sprite::create(
"Images/grossini.png");
1216 sprite->setPositionNormalized(position);
1224 return "NodeNormalizedPositionBugTest";
1229 return "When changing sprite normalizedPosition, the sprite doesn't move!";
1237 float norm = clampf(sinf(
_accum), 0, 1.0);
1238 sprite->setPositionNormalized(Vec2(norm,norm));
1243 return "getName()/setName()/getChildByName()/enumerateChildren()";
1248 return "see console";
1260 TestCocosNodeDemo::onExit();
1265 auto parent = Node::create();
1269 for (
int i = 0; i < 10; ++i)
1271 sprintf(name,
"node%d", i);
1272 auto node = Node::create();
1273 node->setName(name);
1274 parent->addChild(node);
1277 for (
int i = 0; i < 10; ++i)
1279 sprintf(name,
"node%d", i);
1280 auto node = parent->getChildByName(name);
1281 log(
"find child: %s", node->getName().c_str());
1287 parent = Node::create();
1288 for (
int i = 0; i < 100; ++i)
1290 auto node = Node::create();
1291 sprintf(name,
"node%d", i);
1292 node->setName(name);
1293 parent->addChild(node);
1297 parent->enumerateChildren(
"node[[:digit:]]+", [&i](Node* node) ->
bool {
1301 CCAssert(i == 100,
"");
1304 parent->enumerateChildren(
"node[[:digit:]]+", [&i](Node* node) ->
bool {
1308 CCAssert(i == 1,
"");
1313 parent = Node::create();
1314 for (
int i = 0; i < 10; ++i)
1316 auto node = Node::create();
1317 sprintf(name,
"node%d", i);
1318 node->setName(name);
1319 parent->addChild(node);
1321 for (
int j = 0; j < 10; ++j)
1323 auto child = Node::create();
1324 child->setName(
"node");
1325 node->addChild(child);
1330 parent->enumerateChildren(
"node1/node", [&i](Node* node) ->
bool {
1334 CCAssert(i == 10,
"");
1337 parent->enumerateChildren(
"node1/node", [&i](Node* node) ->
bool {
1341 CCAssert(i == 1,
"");
1344 parent = Node::create();
1345 for (
int i = 0; i < 10; ++i)
1347 auto node = Node::create();
1348 sprintf(name,
"node%d", i);
1349 node->setName(name);
1350 parent->addChild(node);
1352 for (
int j = 0; j < 10; ++j)
1354 auto child = Node::create();
1355 child->setName(
"node");
1356 node->addChild(child);
1361 parent->enumerateChildren(
"node[[:digit:]]+/node", [&i](Node* node) ->
bool {
1365 CCAssert(i == 100,
"");
1368 parent->enumerateChildren(
"node[[:digit:]]+/node", [&i](Node* node) ->
bool {
1372 CCAssert(i == 1,
"");
1377 parent->getChildByName(
"node1")->enumerateChildren(
"node[[:digit:]]+/node/..", [&i](Node* node) ->
bool {
1381 CCAssert(i == 1,
"");
1384 parent->getChildByName(
"node1")->enumerateChildren(
"node[[:digit:]]+/node/..", [&i](Node* node) ->
bool {
1388 CCAssert(i == 100,
"");
1391 parent = Node::create();
1392 for (
int j = 0; j < 10; j++)
1394 auto node = Node::create();
1395 sprintf(name,
"node%d", j);
1396 node->setName(name);
1397 parent->addChild(node);
1399 for (
int k = 0; k < 10; ++k)
1401 auto child = Node::create();
1402 sprintf(name,
"node%d", k);
1403 child->setName(name);
1404 node->addChild(child);
1409 parent->enumerateChildren(
"//node[[:digit:]]+", [&i](Node* node) ->
bool {
1413 CCAssert(i == 110,
"");
1416 parent->enumerateChildren(
"//node[[:digit:]]+", [&i](Node* node) ->
bool {
1420 CCAssert(i == 1,
"");
1423 parent->getChildByName(
"node1")->enumerateChildren(
"//node[[:digit:]]+/..", [&i](Node* node) ->
bool {
1427 CCAssert(i == 110,
"");
1431 parent = Node::create();
1432 for (
int i = 0; i < 50; ++i)
1434 auto child = Node::create();
1435 child->setName(
"node");
1436 parent->addChild(child);
1438 auto findChildren = utils::findChildren(*parent,
"node");
1439 CCAssert(findChildren.size() == 50,
"");
1452 auto s = Director::getInstance()->getWinSize();
1454 auto delay = DelayTime::create(0.1f);
1455 auto f = CallFunc::create([
this, s]()
1457 auto camera = Camera::createOrthographic(s.width * 2, s.height * 2, -1024, 1024);
1458 camera->setCameraFlag(CameraFlag::USER1);
1461 this->runAction(Sequence::createWithTwoActions(delay, f));
1464 auto sprite = Sprite::create(
"Images/grossini.png");
1465 this->addChild(sprite);
1467 sprite->setPosition(-200,s.height/3);
1468 auto moveby = MoveBy::create(2, Vec2(400.0f,0.0f));
1469 auto movebyback = moveby->reverse();
1470 auto seq = Sequence::create(moveby, movebyback,
nullptr);
1471 auto forever = RepeatForever::create(seq);
1473 sprite->runAction(forever);
1475 sprite->setCameraMask((
int)CameraFlag::DEFAULT);
1479 auto sister = Sprite::create(
"Images/grossinis_sister1.png");
1480 this->addChild(sister);
1482 sister->setPosition(-200,s.height*2/3);
1483 auto moveby1 = MoveBy::create(2, Vec2(400.0f,0.0f));
1484 auto movebyback1 = moveby1->reverse();
1485 auto seq1 = Sequence::create(moveby1, movebyback1,
nullptr);
1486 auto forever1 = RepeatForever::create(seq1);
1488 sister->runAction(forever1);
1489 sister->setCameraMask((
int)CameraFlag::USER1);
1494 TestCocosNodeDemo::onExit();
1499 return "Issue 16100";
1504 return "Sprite should appear on the screen";
1516 auto visibleSize = Director::getInstance()->getVisibleSize();
1517 auto origin = Director::getInstance()->getVisibleOrigin();
1519 auto sprite1 = Sprite::create(
"Images/grossini.png");
1520 sprite1->setPosition(Vec2(visibleSize / 2) + origin);
1523 auto sprite2 = Sprite::create(
"Images/grossini.png");
1524 sprite2->setPosition(Vec2(visibleSize / 2) + origin);
1525 sprite2->setSkewX(30);
1526 sprite2->setScale(2);
1527 sprite2->setRotation(30);
1530 auto d = DrawNode::create();
1531 d->drawLine(Vec2(origin.x, origin.y + visibleSize.height/2), Vec2(origin.x + visibleSize.width, origin.y + visibleSize.height/2), Color4F::RED);
1532 d->drawLine(Vec2(origin.x + visibleSize.width/2, origin.y), Vec2(origin.x + visibleSize.width/2, origin.y + visibleSize.height), Color4F::RED);
1539 TestCocosNodeDemo::onExit();
1544 return "Issue 16735";
1549 return "Sprite should appear on the center of screen";
#define ADD_TEST_CASE(__className__)
virtual void onExit() override
virtual std::string title() const override
virtual void onEnter() override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual void onEnter() override
virtual void onExit() override
virtual std::string title() const override
virtual std::string subtitle() const override
cocos2d::Sprite * _sprite2
virtual void onEnter() override
cocos2d::Sprite * _sprite1
virtual void onExit() override
cocos2d::Sprite * _sprite2
cocos2d::Sprite * _sprite1
virtual std::string title() const override
virtual void onExit() override
virtual std::string subtitle() const override
virtual void onEnter() override
virtual void onEnter() override
void update(float dt) override
virtual std::string subtitle() const override
virtual void onExit() override
virtual std::string title() const override
void onTouchesEnded(const std::vector< cocos2d::Touch * > &touches, cocos2d::Event *event)
virtual std::string subtitle() const override
virtual void onEnter() override
virtual std::string title() const override
virtual void onExit() override
virtual std::string subtitle() const override
virtual std::string title() const override
virtual void onExit() override
virtual void onEnter() override
virtual std::string subtitle() const override
CustomCommand _customCommand
static MySprite * create(const std::string &spritefilename)
virtual void setProgramState(backend::ProgramState *programState) override
virtual void draw(Renderer *renderer, const Mat4 &transform, uint32_t flags) override
virtual void update(float dt) override
NodeGlobalZValueTest()
NodeGlobalZValueTest
virtual std::string title() const override
cocos2d::Sprite * _sprite
virtual std::string subtitle() const override
virtual void onExit() override
virtual std::string subtitle() const override
virtual void onEnter() override
virtual std::string title() const override
virtual std::string title() const override
NodeNonOpaqueTest()
NodeNonOpaqueTest
virtual std::string subtitle() const override
virtual std::string subtitle() const override
NodeNormalizedPositionBugTest()
virtual std::string title() const override
void update(float dt) override
virtual std::string title() const override
NodeNormalizedPositionTest1()
virtual std::string subtitle() const override
NodeNormalizedPositionTest2()
virtual std::string subtitle() const override
void update(float dt) override
cocos2d::Size _copyContentSize
virtual std::string title() const override
virtual std::string subtitle() const override
NodeOpaqueTest()
NodeOpaqueTest
virtual std::string title() const override
virtual std::string subtitle() const override
virtual void onEnter() override
virtual std::string subtitle() const override
void addAndRemove(float dt)
virtual std::string subtitle() const override
void addAndRemove(float dt)
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual std::string subtitle() const override
virtual void onEnter() override
virtual std::string subtitle() const override
void doSomething(float dt)
virtual std::string subtitle() const override
void removeMe(Node *node)
virtual std::string subtitle() const override
void shouldNotCrash(float dt)
void shouldNotLeak(float dt)
virtual std::string subtitle() const override
TestSuite * getTestSuite() const
virtual void onEnter() override
virtual std::string title() const override
virtual ~TestCocosNodeDemo()
cocos2d::Director::Projection _preProjection
virtual void enterNextTest()
static const char s_pathSister1[]
static const char s_PlaySelect[]
static const char s_back3[]
static const char s_pathSister2[]
static const char s_PlayNormal[]
static const char s_pathGrossini[]