Cocos2dx 3.0rc之单点触屏响应 和 多点触屏响应



3.0rc和2.X版本的注册触屏响应时间有点不一样了

//添加一个单点监听
	auto listener = EventListenerTouchOneByOne::create();
	//监听的回调函数
	listener->onTouchBegan = CC_CALLBACK_2(HelloWorld::onTouchBegan, this);
	listener->onTouchMoved = CC_CALLBACK_2(HelloWorld::onTouchMoved, this);
	listener->onTouchEnded = CC_CALLBACK_2(HelloWorld::onTouchEnded, this);

	//添加一个多点监听
	auto listener2 = EventListenerTouchAllAtOnce::create();
	listener2->onTouchesBegan = CC_CALLBACK_2(HelloWorld::onTouchesBegan, this);
	listener2->onTouchesMoved = CC_CALLBACK_2(HelloWorld::onTouchesMoved, this);
	listener2->onTouchesEnded = CC_CALLBACK_2(HelloWorld::onTouchesEnded, this);

	//将监听委派到这个layer,并设置优先级
	auto dispatcher = Director::getInstance()->getEventDispatcher();
	dispatcher->addEventListenerWithSceneGraphPriority(listener2, this);
	dispatcher->setPriority(listener2, 1);

单点的回调函数

bool HelloWorld::onTouchBegan(Touch *touch, Event *unused_event)
{
	Point point = touch->getLocation();
	CCLOG("x=%f , y=%f", point.x, point.y);
	return true;
}

void HelloWorld::onTouchMoved(Touch *touch, Event *unused_event)
{
	//CCLOG("bbb");
}

void HelloWorld::onTouchEnded(Touch *touch, Event *unused_event)
{
	//CCLOG("ccc");
}


多点的回调函数

void HelloWorld::onTouchesBegan(const std::vector<Touch*>& touches, cocos2d::Event *unused_event)
{

	for (auto &item : touches)
	{
		auto touch = item;
		auto location = touch->getLocation();
		auto sp = Sprite::create("CloseSelected.png");
		sp->setPosition(location);
		this->addChild(sp);
		CCLOG("touched x=%f , y=%f", location.x, location.y);
	}


}

void HelloWorld::onTouchesMoved(const std::vector<Touch*>& touches, cocos2d::Event *unused_event)
{

}

void HelloWorld::onTouchesEnded(const std::vector<Touch*>& touches, cocos2d::Event *unused_event)
{

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值