
在用到3.0的时候会有很多函数用法的改变,下面只是自己在使用的过程中常出现的。
单点触摸:
auto Listener = EventListenertouchOneByOne::create();Listener->setSwallowtouches(true);Listener->ontouchBegan = CC_CALLBACK_2(AnimationCollIDe::ontouchBegan,this); _eventdispatcher->addEventListenerWithSceneGraPHPriority(Listener,this);
同样下面这种也是:
// Make sprite1 touchableauto 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_0CC_CALLBACK_1CC_CALLBACK_2CC_CALLBACK_3
关于上面我简单的理解就是回调函数中所使用的几个参数。更加详细的可以看这个位置 详细讲解
第二个:
Listener1->ontouchBegan = [](touch* touch,Event* event)
关于ontouchBegan 的不明白的 详细的讲解 点击打开链接
暂时写这么多。。。
总结以上是内存溢出为你收集整理的Cocos2dx 3.0 一些新用法。全部内容,希望文章能够帮你解决Cocos2dx 3.0 一些新用法。所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)