cocos2dx自学之 事件监听

auto label = LabelTTF::create("click me!","Courier",30);
	label->setPosition(visibleSize.width/2,visibleSize.height/2);

	addChild(label);
	auto listener = EventListenerTouchOneByOne::create(); //创建监听器
	listener->onTouchBegan = [](Touch *touch,Event *event){  //设置监听函数
		
		if(event->getCurrentTarget()->getBoundingBox().containsPoint(touch->getLocation())){ //判断点击范围是在label上
			log("onTouched!!!!!!!!!!!!");

		}
		return true;  //返回true才能出发事件传递
	};

	//事件传递
	listener->onTouchMoved = [](Touch* touch,Event *event){ //拖动事件   onTouchEnded = 触摸弹起事件
		log("onTouchmoved!");
		return true;//返回 true  才可以继续传递事件
	};

	Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener,label);  //绑定监听事件 */
	//多点触摸监听器******************************************
	/*auto listener = EventListenerTouchAllAtOnce::create();
	
	listener->onTouchesBegan = [](std::vector<Touch*> t,Event *event){ //单击事件
		log("onTouchesBegan");
	};
	listener->onTouchesMoved = [](std::vector<Touch*> t,Event *event){ //多点同时触摸事件
		log("touches moved,and touch count is%ld",t.size());
	};
	Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener,this); */


	/****************************  传感器  *****************************************/
	/*Device::setAccelerometerEnabled(true);//打开传感器侦听  传感器=重力感应?
	auto listener = EventListenerAcceleration::create([](Acceleration *a,Event *event){
		log("x:%g,y:%g,z:%g",a->x,a->y,a->z);
	});
	Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener,this);*/

	/**************************  按键监听  ************************************/
	/*auto listener = EventListenerKeyboard::create();
	listener->onKeyReleased = [](EventKeyboard::KeyCode code,Event *venet){ //监听按键事件
		log("key:%d",code);
		switch(code){  
		case EventKeyboard::KeyCode::KEY_BACKSPACE: //如果是后退键
			Director::getInstance()->end();   //退出当前程序
				break;
		}
	};

	Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener,this);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值