Cocos2dx 3.0 一些新用法

在用到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 的不明白的 详细的讲解 点击打开链接

暂时写这么多。。。

相关文章

    本文实践自 RayWenderlich、Ali Hafizji 的文章《...
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@1...
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从C...
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发...
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《...
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试...