cocos2d-x 多触点监听

[cpp] view
plain
copy

  1. //首先到cocos2d-x项目下的ios目录下。找到AppController.mm文件,在函数 didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 中加入例如以下函数:  [__glView setMultipleTouchEnabled:YES];
  2. bool HelloWorld::init()
  3. {
  4. if ( !CCLayer::init() )
  5. {
  6. return false;
  7. }
  8. //开启多触点监听务必调用此函数
  9. setTouchEnabled(true);
  10. CCSprite* sp1 = CCSprite::create("Icon.png");
  11. sp1->setPosition(ccp(150, 200));
  12. addChild(sp1, 0, 23);
  13. CCSprite* sp2 = CCSprite::create("Icon.png");
  14. sp2->setColor(ccc3(0, 255, 0));
  15. sp2->setPosition(ccp(150, 100));
  16. addChild(sp2, 0, 24);
  17. return true;
  18. }
  19. //第一次碰触
  20. void HelloWorld::ccTouchesBegan(cocos2d::CCSet *touches, cocos2d::CCEvent *event)
  21. {
  22. CCSetIterator inter = touches->begin();
  23. for(; inter != touches->end(); inter++)
  24. {
  25. CCTouch* touch = (CCTouch*)(*inter);
  26. CCPoint point = touch->getLocation();
  27. if(touch->getID() == 0) //第一个触点
  28. {
  29. CCSprite* sp1 = (CCSprite*)getChildByTag(23);
  30. sp1->setPosition(point);
  31. }else if(touch->getID() == 1)//第二个触点
  32. {
  33. CCSprite* sp2 = (CCSprite*)getChildByTag(24);
  34. sp2->setPosition(point);
  35. }
  36. }
  37. }
  38. //移动或拖拽
  39. void HelloWorld::ccTouchesMoved(cocos2d::CCSet *touches, cocos2d::CCEvent *event)
  40. {
  41. CCSetIterator inter = touches->begin();
  42. for(; inter != touches->end(); inter++)
  43. {
  44. CCTouch* touch = (CCTouch*) (*inter);
  45. CCPoint point = touch->getLocation();
  46. if(touch->getID() == 0)
  47. {
  48. CCSprite* sp1 = (CCSprite*)getChildByTag(23);
  49. sp1->setPosition(point);
  50. }else if(touch->getID() == 1)
  51. {
  52. CCSprite* sp2 = (CCSprite*)getChildByTag(24);
  53. sp2->setPosition(point);
  54. }
  55. }
  56. }
  57. //用户手指抬起
  58. void HelloWorld::ccTouchesEnded(cocos2d::CCSet *touches, cocos2d::CCEvent *event)
  59. {
  60. }
  61. //多触点的托付监听注冊放在onEnter的生命函数中会造成程序异常退出。默认都写在以下函数中。
  62. void HelloWorld::registerWithTouchDispatche()
  63. {
  64. CCDirector::sharedDirector()->getTouchDispatcher()->addStandardDelegate(this, 0);
  65. }
  66. //删除多触点的托付监听
  67. void HelloWorld::onExit()
  68. {
  69. CCDirector::sharedDirector()->getTouchDispatcher()->removeDelegate(this);
  70. //这句务必要写
  71. CCLayer::onExit();
  72. }
时间: 2024-10-18 19:13:23

cocos2d-x 多触点监听的相关文章

关于 Android ios cocos2d 中的广播监听

1. 关于广播监听 第一次使用是在Android中,broadcast.主要用在2个activity之间进行传递数据,发出一个广播,对这个广播有兴趣的就去监听它,做出相应的回应即可.主要是传递数据,触发机制比较好,跟全局变量或者单例有点像,但是使用场合有区别,比如2个activity之间传递数据,activity这种有生命周期的弄成全局变量和单例就不合适了. 2.Android的广播 发送广播: Intent intent = new Intent("OUR_BLE_CENTRAL_MANAGE

cocos2d-x CCSprite 精灵监听点击事件

参考文章: cocos2d-x 精灵监听点击事件 http://labs.easymobi.cn/?p=5167 实现过程,实现CCTouchDelegate接口,在enter 的时候添加监听,exit 和析构时移除监听,点击时将touch 的坐标转化为相对精灵的坐标,如果是否在精灵的范围内,则响应点击.主要是参考前面两篇文章中的例子,不同的地方在判断区域,个人觉得太复杂.所以稍微修改了下,看起来更容易理解. PianoTile.h class PianoTile : public cocos2

Cocos2dx 3.2键盘监听的打开方式以及点击两次返回退出的实现方法

Cocos2dx 3.2键盘监听的打开方式以及点击两次返回退出的实现方法 首先,在Scene中重载下面两个函数 [cpp] view plaincopy virtual void onKeyPressed(EventKeyboard::KeyCode keyCode, Event* event); virtual void onKeyReleased(EventKeyboard::KeyCode keyCode, Event* event); 第一个函数在按下时触发,第二个函数在松开是触发. 然

Android 监听ListView、GridView滑动到底部

// 监听listview滚到最底部mIndexList.setOnScrollListener(new OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { switch (scrollState) { // 当不滚动时 case OnScrollListener.SCROLL_STATE_IDLE: // 判断滚动到底部 if (view.get

使用path监听指定文件系统的变化

在以前的JAVA版本中,如果程序需要检测文件的变化,那么需要开辟一个线程每隔一段时间去遍历一次指定的目录,如果发现此次遍历结果和上次不同,那么就认为文件变动了 ,这样的方式非常繁琐,JAVA 7之后的NIO.2 Path类提供了一个方法来监听指定文件目录内文件的变化状态. 1.获取文件系统的WatchService对 2.使用Path类的方法去注册一个监听,指定监听文件的哪些状态,如新增.修改.删除. package com.nio2; import java.io.IOException;im

老男孩教育每日一题-2017年5月11-基础知识点: linux系统中监听端口概念是什么?

1.题目 老男孩教育每日一题-2017年5月11-基础知识点:linux系统中监听端口概念是什么? 2.参考答案 监听端口的概念涉及到网络概念与TCP状态集转化概念,可能比较复杂不便理解,可以按照下图简单进行理解? 将整个服务器操作系统比喻作为一个别墅 服务器上的每一个网卡比作是别墅中每间房间 服务器网卡上配置的IP地址比喻作为房间中每个人 而房间里面人的耳朵就好比是监听的端口 当默认采用监听0.0.0.0地址时,表示房间中的每个人都竖起耳朵等待别墅外面的人呼唤当别墅外面的用户向房间1的人呼喊时

Android简易实战教程--第十九话《手把手教您监听EditText文本变化,实现抖动和震动的效果》

监听文本输入情况,仅仅限于土司略显low点,这一篇就稍微"高大上"些,体验一下滚动和震动. 首先,需要两个文件.截图: 两个文件的内容分别如下: cycle_7: <?xml version="1.0" encoding="utf-8"?> <!-- 表示循环的次数 --> <cycleInterpolator xmlns:android="http://schemas.android.com/apk/re

屏幕触摸事件监听,判断上下左右的操作行为,判断方法缩小的操作行为

在手机屏幕上能够实现的人机交互行为,大致包括点击按钮,拉动滑动块,物体缩放,上下左右拉动等. 手机屏幕触摸事件的监听方法: 1.首先要设置一块布局区域,frameLayout/LinearLayout等都可以,并为布局设置id: 2.在Activity中声明相应的布局类型,并通过findViewById()方法找到该布局,然后为该布局区域设置setOnTouchListener()方法,就能监听在相应屏幕触摸操作 实现屏幕触摸事件监听的代码: private LinearLayout Land;

Oracle只监听本机,网络其他计算机连不上

Oracle只能本机连接,网络其他计算机连不上 Oracle 只监听本地127.0.0.1,导致网络其他计算机连不上解决办法: 修改 listener.ora监听文件,把其中的localhost 改成计算机名.重启Oralce监听和服务.