cocos2dx触屏响应(单点触摸)CCTouchBegan,CCTouchMove,CCTouchEnd[通俗易懂]

cocos2dx触屏响应(单点触摸)CCTouchBegan,CCTouchMove,CCTouchEnd[通俗易懂]今天白白跟大家分享一下cocos2dx单点触摸经验。cocos2dx触摸CCTouch类的单点触摸有四个函数CCTouchBegan,CCTouchMove,CCTouchEnd,CCTouchCan

大家好,又见面了,我是你们的朋友全栈君。

今天白白跟大家分享一下cocos2dx单点触摸经验。

cocos2dx触摸CCTouch类的单点触摸有四个函数CCTouchBegan,CCTouchMove,CCTouchEnd,CCTouchCancalled。

这些触摸的函数不一定每一个都要响应,可是CCTouchBegan是一定要有的,他的返回值是bool,其他函数返回值为void

以下我们看看怎样触摸:

首先我们新建一个项目Hello

1、在源文件Hello.h声明函数

    void registerWithTouchDispatcher(void);                 //注冊触摸
    bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);    //触摸開始,注意返回类型,假设返回false,就不用写以下三个函数
    void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);    //触摸滑动                              
    void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent);    //触摸结束                  
    void ccTouchCancelled(CCTouch *pTouch, CCEvent *pEvent);//触摸取消  比如中途来点


2、 开启触摸

在须要开启触摸的地方增加即可,比如init里面

bool Hello::init()
{
    setTouchEnabled(true);
    return true;
}


3、实现注冊函数

void Hello::registerWithTouchDispatcher()           
{
    CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, true);
}


4、实现ccTouchBegan

bool Hello::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)
{	
    CCPoint touchpoint = pTouch->getLocation();		 //获取触摸坐标
    CCLOG("touch began, touchpoint is %f", touchpoint);
    return true;      //true表示继续响应CCTouchMove,CCTouchEnd,CCTouchCancalled,false表示不响应。
}


5、实现ccTouchMove

void Hello::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent)
{	
    CCPoint touchpoint = pTouch->getLocation();		 //获取触摸坐标
    CCLOG("touch move, touchpoint is %f", touchpoint);
}


6、实现ccTouchEnded

void Hello::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent)
{
    CCPoint touchpoint = pTouch->getLocation(); //获取触摸坐标 
    CCLOG("touch end, touchpoint is %f", touchpoint);
}


7、实现ccTouchCancalled

void Hello::ccTouchCancalled(CCTouch *pTouch, CCEvent *pEvent)
{	
    CCPoint touchpoint = pTouch->getLocation();		 //获取触摸坐标
    CCLOG("touch end, touchpoint is %f", touchpoint);
}


ok,触摸完成,请大家指示!



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155416.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • go语言runtime_中台怎么理解

    go语言runtime_中台怎么理解funcCaller(skipint)(pcuintptr,filestring,lineint,okbool)参数:skip是要提升的堆栈帧数,0-当前函数,1-上一层函数,….返回值:pc是uintptr这个返回的是函数指针file是函数所在文件名目录line所在行号ok是否可…

    2025年7月29日
    2
  • 什么是对抗学习

    什么是对抗学习深度学习中的对抗学习就是两个网络互相竞争对抗 一个生成网络 一个判别网络生成网络生成假数据以假乱真判别网络判别真假数据 找出假数据两个网络都在不断增强

    2026年1月28日
    1
  • ArcEngine 中的-2147467259错误

    ArcEngine 中的-2147467259错误ArcEngine中因数据不合规导致的-2147467259错误

    2022年7月13日
    28
  • 小程序父组件向子组件传值

    小程序父组件向子组件传值子组件:tabs1父组件:demo04先将子组件和父组件直接产生特定的联系,需要在demo04.json里面以键值对的方式添加。添加完毕后在父组件中就可以使用标签,就可以渲染出子组件内容。因为tabs1多次复用,所以数据不能在tabs1.js中写死。一般都是由父组件中data数据传到子组件。1.先在父组件data中添加list数据,data:{list:[{id:“2”,nam…

    2022年5月18日
    44
  • 进程处于挂起状态表示_挂起进程转换图

    进程处于挂起状态表示_挂起进程转换图文章目录引言挂起状态是什么?挂起状态和阻塞状态有什么区别?如何主动挂起程序总结引言以前对于这个概念始终比较模糊,遂在解决后记录博客,希望帮助到有同样问题的朋友。挂起状态是什么?我们一般认为进程有五个状态,即新建态,就绪态,阻塞态,运行态,终止态。而在这些状态之外还存在着一个状态,我们称之为挂起状态,它既可以是我们客户主动使得进程挂起,也可以是操作系统因为某些原因使得进程挂起。总而言之引入挂起状态的原因有以下几种:用户的请求:可能是在程序运行期间发现了可疑的问题,需要暂停进程。父进程的请求:

    2025年7月2日
    6
  • .deb文件如何安装,Ubuntu下deb安装方法图文详解[通俗易懂]

    .deb文件如何安装,Ubuntu下deb安装方法图文详解[通俗易懂]摘自:https://www.linuxidc.com/Linux/2018-11/155380.htmdeb包是Debian,Ubuntu等Linux发行版的软件安装包,扩展名为.deb,是类似于rpm的软件包,Debian,Ubuntu系统不推荐使用deb软件包,因为要解决软件包依赖问题,安装也比较麻烦。如果Ubuntu要安装新软件,已有deb安装包(例如:linux…

    2022年6月4日
    199

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号