在cocos2d-x里面  想要把一个精灵从原位置移动到用户所触摸到的点 , 并且把精灵的方向旋转相对应的弧度,可以参考一下我的做法

我这里的精灵是用一条鱼, 用户触摸后鱼就移动到所触摸的点, 并且移动开始时鱼头的方向已经向着所触摸的点 下面是详细做法

首先  h文件申明重写CCLayer里面的四个方法 :

virtualvoid registerWithTouchDispatcher(void);

virtualbool ccTouchBegan(CCTouch *pTouch,CCEvent *pEvent);

virtualvoid ccTouchMoved(CCTouch *pTouch,CCEvent *pEvent);

virtualvoid ccTouchEnded(CCTouch *pTouch,CCEvent *pEvent);

然后在cpp文件里面的init方法让当前图层实现触摸:

this->setTouchEnabled(true);

接着在cpp文件里重写的方法实现:

void StartGame::registerWithTouchDispatcher()
{CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,INT_MIN-1,true);
}
bool StartGame::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent) {CCPoint p=pTouch->getLocation();CCSprite * nowsprite=(CCSprite*)this->getChildByTag(888);//根据tag获取我的精灵nowsprite->cocos2d::CCNode::setRotation(atan2((p.x-nowsprite->getPositionX()),(p.y-nowsprite->getPositionY()))*180/3.1415926+90);//改变弧度 后面加不加90要根据精灵的初始角度是怎样的CCMoveTo * move_ten =CCMoveTo::create(1, p); //设定移动所用的时间和坐标nowsprite->runAction(move_ten);return true;
}void StartGame::ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent) {CCPoint p=pTouch->getLocation();CCSprite * nowsprite=(CCSprite*)this->getChildByTag(888);nowsprite->setPosition(p);
}
void StartGame::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent)
{
//这里写结束触摸需要实现的功能
}

转载于:https://www.cnblogs.com/riasky/p/3372066.html

[cocos2d-x] 让精灵响应触摸 并把方向旋转到相对应的角度相关推荐

  1. cocos2d ccLayer响应触摸事件方法:CCStandardTouchDelegate 与 CCTargetedTouchDelegate

    cocos2d ccLayer响应触摸事件方法:CCStandardTouchDelegate 与 CCTargetedTouchDelegate    以下内容转载自:http://blog.sin ...

  2. Cocos-2d 关于SwallowTouch,进一步解释触摸事件分发机制

    问题情境 模拟一个类似游戏提示信息的层: 1.游戏主场景可触摸,可交互: 2.当提示显示提示信息时,只有提示信息这一层可触摸同用户交互,其背景则不能继续响应触摸事件 3.当提示信息层从主场景中移除之后 ...

  3. Cocos2D研究院之精灵与动画

    转载自雨松MOMO程序研究院本文链接地址:Cocos2D研究院之精灵与动画(六) 通过对导演.场景.层和节点的剖析,现在我们已经可以写出一个完整的游戏体系了,在实际应用中,场景一般都是作为游戏的关卡, ...

  4. Android官方开发文档Training系列课程中文版:OpenGL绘图之响应触摸事件

    原文地址:http://android.xsoftlab.net/training/graphics/opengl/touch.html 使图形按照程序设计的轨迹旋转对OpenGL来说还是不能发挥出它 ...

  5. pygame 学习笔记(7)添加一个精灵:坦克的移动和旋转

    本文内容 精灵 类的使用 Rect 类的使用 实现一个坦克的移动和旋转 效果演示 添加一个静态坦克 我们已经知道如何创建一个游戏窗口,并设置背景图片,还让游戏程序可以对键盘和鼠标进行响应,接着我们需要 ...

  6. 触摸操作(单手旋转双手缩放)

    在使用Unity3D制作移动端的软件时候,对于一些3D物体的操作和展示,单手滑动进行旋转.双手滑动进行缩放操作是很普遍的一项功能.代码如下: using System.Collections; usi ...

  7. Mac上鼠标滚轮方向是和Win相反的,系统中设置后触摸板的方向又跟着变了

    Mac上鼠标滚轮方向是和Win相反的,系统中设置后触摸板的方向又跟着变了 想让MacBook触摸板和非原生的鼠标滚轮方向一致可以使用第三方应用Scroll Reverser 来解决. Scroll R ...

  8. 如何修复iPhone屏幕没有响应触摸iOS 15更新

    如果您是那些不幸的人之一,他们的iPhone屏幕卡住了,无论他们做什么,它都不会响应点击和滑动,那么我们再也不用担心我们为您提供了保障.我们在本文中招募了一些最有效的修复程序,可用于修复iPhone屏 ...

  9. Flutter:如何响应触摸事件

    目录传送门:<Flutter快速上手指南>先导篇 除了 GestureDetector,Flutter 还提供了 Listener 来监听触摸事件. 它也是一个 Widget,使用它包裹一 ...

最新文章

  1. 程序员的你还沉浸在大公司就是螺丝钉?小公司锻炼人?错了!看完即懂
  2. MySQL批量导入数据
  3. python遍历文件夹下所有文件大小_python遍历文件夹读取文件大小 | 学步园
  4. 计算机网络:第六章 应用层
  5. webconfig节点值里的文字换行问题
  6. RIS镜像中添加网卡和RAID卡驱动方法及实践经验总结
  7. shell printf命令:格式化输出语句
  8. noip2017考前整理(未完)
  9. html5能实现网络游戏吗,kbengine + cocos2d_js实现html5网络游戏mmorpg(全套代码+资源)...
  10. create---创建表
  11. 公寓式楼房宜南北走向
  12. syscall 系统调用陷入_MIPS中的异常处理和系统调用【转】-阿里云开发者社区
  13. 新版码支付个人免签支付系统源码+实测成功
  14. 写作专用各种表情和符号,使你的文章更加美观有趣!❤️❤️❤️
  15. Unity3D Delegate
  16. 新生儿常见问题>奶癣
  17. 【智能商务】学习财务分析,看这10张思维导图就够啦
  18. 54家半导体芯片原厂涨价、调价及交期变动通知函!
  19. std::forward理解
  20. C语言中strchr和strrchr函数及用法

热门文章

  1. 如何写一份个人工作总结型的PPT来获得领导的认可?
  2. [汇总信息] Laravel 上使用 phpexcel的两种方式
  3. Python——最大公约数与最小公倍数
  4. 专访重庆光博士才俊明
  5. Java中的String,StringBuffer,StringBuilder有什么区别?
  6. J2EE进阶(二十四)JBoss Web和 Tomcat的区别
  7. 刚拿到护照,第一次出国应该从哪些国家开始?
  8. Unity动画系统学习笔记(一)动画剪辑与状态机
  9. 江小白包装设计原型_陪我们走过青春的江小白,从产品线包装方面解读下
  10. linux下的i2c