Cocos2d-X3.0中使用单点触摸

Cocos2d-X3.0中使用单点触摸,第1张

概述在游戏中,经常会用到触摸,大部分游戏也是通过触摸控制游戏角色运动的,在Cocos2d-X3.0中使用了新的触摸机制,Cocos2d-X3.0中摒弃了Cocos2d-X2.0中将要触发的事件交给代理(delegate)处理,再通过实现代理里面的onTouchBegan等方法接收事件,最后完成事件的响应,在Cocos2d-X3.0中只需通过创建一个事件监听器-用来实现各种触发后的逻辑,然后添加到事件分

在游戏中,经常会用到触摸,大部分游戏也是通过触摸控制游戏角色运动的,在Cocos2d-X3.0中使用了新的触摸机制,Cocos2d-X3.0中摒弃了Cocos2d-X2.0中将要触发的事件交给代理(delegate)处理,再通过实现代理里面的ontouchBegan等方法接收事件,最后完成事件的响应,在Cocos2d-X3.0中只需通过创建一个事件监听器-用来实现各种触发后的逻辑,然后添加到事件分发器_eventdispatcher,所有事件监听器有这个分发器统一管理,即可完成事件响应。

上面的话可能过于抽象,下面通过一个简单的例子来测试Cocos2d-X3.0中触摸

首先创建一个touchScene类,并且在touchScene.h中添加下面的代码

#ifndef __touchScene__#define __touchScene__#include "cocos2d.h"USING_NS_CC;class touchScene : public Layer{public:    static Scene* createScene();    virtual bool init();        CREATE_FUNC(touchScene);	//开始触摸	bool ontouchBegan(touch* touch,Event  *event);    	//滑动	voID ontouchmoved(touch* touch,Event  *event);    	//结束触摸	voID ontouchended(touch* touch,Event  *event);	//取消触摸	voID ontouchCancelled(touch* touch,Event* event);};#endif
 

在touchScene,cpp中添加下面的代码

#include "touch.h"Scene* touchScene::createScene(){    auto scene = Scene::create();        auto layer = touchScene::create();    scene->addChild(layer);    return scene;}bool touchScene::init(){    if(!Layer::init())    {        return false;    }	//创建一个事件监听器,OneByOne为单点触摸	auto Listener = EventListenertouchOneByOne::create();    	//事件回调函数	Listener->ontouchBegan = CC_CALLBACK_2(touchScene::ontouchBegan,this);    Listener->ontouchmoved = CC_CALLBACK_2(touchScene::ontouchmoved,this);    Listener->ontouchended = CC_CALLBACK_2(touchScene::ontouchended,this);    	//添加监听器	_eventdispatcher->addEventListenerWithSceneGraPHPriority(Listener,this);        	return true;}//开始触摸bool touchScene::ontouchBegan(touch* touch,Event  *event){	log("touch began !");	return true;} //滑动voID touchScene::ontouchmoved(touch* touch,Event  *event){	log("touch moved !");}//结束触摸voID touchScene::ontouchended(touch* touch,Event  *event){	log("touch ended !");}//取消触摸voID touchScene::ontouchCancelled(touch* touch,Event* event){	ontouchended(touch,event);}
 

测试程序,程序的测试结果如下:
当触摸屏幕时会打印touch began !
当触摸结束后会打印touch ended !
当在屏幕上滑动时会打印touch moved !

总结

以上是内存溢出为你收集整理的Cocos2d-X3.0中使用单点触摸全部内容,希望文章能够帮你解决Cocos2d-X3.0中使用单点触摸所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1054142.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存