Cocos2dx 3.0 一些新用法。
发布时间:2020-12-14 19:35:13 所属栏目:百科 来源:网络整理
导读:在用到3.0的时候会有很多函数用法的改变,下面只是自己在使用的过程中常出现的。 单点触摸: auto listener = EventListenerTouchOneByOne::create();listener-setSwallowTouches(true);listener-onTouchBegan = CC_CALLBACK_2(AnimationCollide::onTouchBeg
在用到3.0的时候会有很多函数用法的改变,下面只是自己在使用的过程中常出现的。 单点触摸: auto listener = EventListenerTouchOneByOne::create(); listener->setSwallowTouches(true); listener->onTouchBegan = CC_CALLBACK_2(AnimationCollide::onTouchBegan,this); _eventDispatcher->addEventListenerWithSceneGraphPriority(listener,this); 同样下面这种也是: // Make sprite1 touchable auto listener1 = EventListenerTouchOneByOne::create(); listener1->setSwallowTouches(true); listener1->onTouchBegan = [](Touch* touch,Event* event) { auto target = static_cast<Sprite*>(event->getCurrentTarget()); Point locationInNode = target->convertToNodeSpace(touch->getLocation()); Size s = target->getContentSize(); Rect rect = Rect(0,s.width,s.height); if (rect.containsPoint(locationInNode)) { //target->setOpacity(180); return true; } return false; }; listener1->onTouchMoved = [](Touch* touch,Event* event) { // auto target = static_cast<Sprite*>(event->getCurrentTarget()); // target->setPosition(target->getPosition() + touch->getDelta()); }; listener1->onTouchEnded = [=](Touch* touch,Event* event) { auto target = static_cast<Sprite*>(event->getCurrentTarget()); log("sprite onTouchesEnded.. "); //target->setOpacity(255); if (target == sprite2) { sprite2->setLocalZOrder(100); } else { sprite2->setLocalZOrder(20); } if(target == sprite1) { sprite1->setLocalZOrder(100); } else { sprite1->setLocalZOrder(10); } if(target == sprite3) { sprite3->setLocalZOrder(100); } else { sprite3->setLocalZOrder(30); } }; 这个方法是在Testcpp里面,具体的效果是点击到那张图片后可以拖动,同时它的Zorder会升高。 在上面的代码中出现了 CC_CALLBACK_2 和 listener1->onTouchBegan = [](Touch* touch,Event* event)、 listener1->onTouchEnded = [=](Touch* touch,Event* event)
第一个: CC_CALLBACK_0 CC_CALLBACK_1 CC_CALLBACK_2 CC_CALLBACK_3 关于上面我简单的理解就是回调函数中所使用的几个参数。更加详细的可以看这个位置 详细讲解 第二个: listener1->onTouchBegan = [](Touch* touch,Event* event) 关于onTouchBegan 的不明白的 详细的讲解 点击打开链接 暂时写这么多。。。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |