- 浏览: 462778 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (470)
- 前言 (1)
- 【sys】centos6.2 (51)
- 【sys】shell (8)
- 【sys】yum (1)
- software (6)
- 【tec】ruby (16)
- 【tec】rails (35)
- 【tec】rails路由 (2)
- 【tec】rails部署 (10)
- 【tec】rails优化 (6)
- 【tec】rails测试 (11)
- 【tec】php (45)
- 【tec】android (1)
- 【tec】ios (125)
- 【data】mysql (11)
- web (6)
- 【life】文学与提升 (2)
- life (36)
- 【life】怀念 (1)
- 【web】nginx (5)
- 【web】网络与安全 (4)
- 工作随笔 (1)
- 【software】svn (5)
- 【script】jquery (10)
- powerEdge (2)
- 杂七杂八 (5)
- 【sys】ubuntu (9)
- 【sys】windows (4)
- 【tec】java (1)
- 【tec】html (3)
- 【tec】c++ (38)
- 【tec】汇编 (1)
- 【data】数据库 (1)
- 【exchange 】学术交流 (1)
- 【tec】域名空间 (1)
- 【tec】编程先知 (1)
- 【tec】网站建设 (7)
- 【sys】mac (24)
- 【sys】seo (1)
- 【tec】wp (1)
- 【software】git (4)
最新评论
-
fireDragonpzy:
呵呵 貌似我网站上的有更新 你从那里看看 这个博客维护的不及时 ...
牛人经典语录 -
Peppermintchz:
还真这么2过啊!!好怀念啊
牛人经典语录 -
fireDragonpzy:
chenhong53 写道你好,我想问一下,能不能给一组精灵数 ...
cocos2d-x事件触发的优先级 -
chenhong53:
你好,我想问一下,能不能给一组精灵数组中的精灵添加触屏优先级, ...
cocos2d-x事件触发的优先级 -
fireDragonpzy:
dreamstar1020 写道谢谢庞兄指点,写的很详细,谢谢 ...
致:上海郑兄(虚拟主机-web服务器搭建)
之前已经建立好了一个场景,在建立场景的时候,已经将一个CCLayer加到场景的子节点上,这个节点将作为这个场景的父节点,场景中所有的内容都将以它的孩子身份出现。在移动设备上,最常处理的就是触摸消息的响应了。
(一)单点触控:Targeted Touch Delegate方式
(二)多点触控:Standard Touch Delegate方式(CCLayer默认采纳这种方式)
支持这种方式同样需要三个步骤:
(三)获取触点位置
摘自:http://www.cnblogs.com/w121640121/archive/2011/12/06/2278651.html
(一)单点触控:Targeted Touch Delegate方式
一个层接收触摸消息需要如下步骤: 1,在初始化阶段将此层的属性设置为接收触摸消息。例如在init()函数中添加: m_bIsTouchEnabled = true; 或 setIsTouchEnabled(true); 2,重载函数virtual void registerWithTouchDispatcher(void); 因为默认的方式为Standard Touch Delegate,因此需要重新注册,在函数中添加以下语句 CCTouchDispatcher::sharedDispatcher()->addTargetedDelegate(this, INT_MIN+1, true); 其中第二个参数为优先级,优先级数值越低,越先响应(未测试) 3,重载触摸响应函数 接收触摸消息需要重载以下函数 virtual bool ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent);// 必须实现 virtual void ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent); virtual void ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent); virtual void ccTouchCancelled(CCTouch *pTouch, CCEvent *pEvent); 这里需要注意的事第一个函数是必须实现的,否则点击会抛出异常
(二)多点触控:Standard Touch Delegate方式(CCLayer默认采纳这种方式)
支持这种方式同样需要三个步骤:
1,同Targeted Touch Delegate方式第一步 2,将此节点添加到StandardDelegate(对于CCLayer可以省略此步),以实现一个可以点击的CCSprite为例: 在onEnter函数中添加 cocos2d::CCTouchDispatcher::sharedDispatcher()->addStandardDelegate(this,0); 3,重载响应函数 virtual void ccTouchesBegan(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent); virtual void ccTouchesMoved(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent); virtual void ccTouchesEnded(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent); virtual void ccTouchesCancelled(cocos2d::CCSet*pTouches,cocos2d::CCEvent *pEvent); 其中 pTouches为一个CCTouch的集合,可以通过以下方法来获取单一触点 if(!pTouches||!pTouches->count()) { return; } cocos2d::CCTouch* pTouch = (cocos2d::CCTouch*)(*(pTouches->anyObject())); 获取全部触点需要遍历这个集合 for(CCSetIterator iterTouch = pTouches->begin(); iterTouch != pTouches->end(); iterTouch++) { CCTouch *pCurTouch = (cocos2d::CCTouch*)(*iterTouch); // do something } 4,从StandardDelegate移除: 如果第二步将自定义的CCSprite加入到StandardDelegate,那么在此CCSprite被清除时,移除此CCSprite。在onExit函数中调用 cocos2d::CCTouchDispatcher::sharedDispatcher()->removeDelegate(this);
(三)获取触点位置
从CCTouch中可以获取到触点的位置主要有以下几种方式 1:获取UIView坐标 CCPoint ptTouch = pTouch->locationInView(pTouch->view()); 这里获取的是设备的UIView坐标,原点在左上角,X向右侧递增,Y向下递增。 2:获取节点坐标 CCPoint ptNode = convertTouchToNodeSpace(pTouch); 节点坐标的计算同GL坐标,它以所在节点的左下角为原点,X向右递增,Y向上递增 3,获取锚点坐标 一个节点,所有的变换都是基于锚点,比如平移,旋转,缩放等。可以通过函数setAnchorPoint(CCPoint var);来改变锚点。cocos2d-x里节点默认的锚点是中心点,即等同于setArchorPoint(ccp(0.5, 0.5));其中(0,0)代表左下角,(1,1)代表右上角。 CCPoint ptNodeAR = convertTouchToNodeSpaceAR(pTouch); 这时,坐标系的原点在该节点的锚点位置。X向右递增,向左递减;Y向上递增,向下递减
摘自:http://www.cnblogs.com/w121640121/archive/2011/12/06/2278651.html
发表评论
-
cocos2d-x CCClippingNode遮罩实现手电筒效果
2013-07-09 20:14 2245详情请参考:【Software Myzone】:http:// ... -
Cocos2d: Stencil buffer is not enabled.
2013-07-05 10:47 1619详情请参考:【Software Myzone】:http:// ... -
[2.1.3]修改SearchPaths的三种方式【熊猫版】
2013-06-24 09:44 870详情请参考:【Software Myzone】:http:// ... -
深入理解 Cocos2d-x 内存管理 转
2013-06-24 09:43 800详情请参考:【Software Myzone】:http:// ... -
cocos2d-x场景缩放后的区域碰撞检测
2013-06-24 09:31 1412详情请参考:【Software Myzone】:http:// ... -
编译CSArmature到Android
2013-05-29 09:09 774详情请参考:【Software Myzone】:http:// ... -
TexturePacker 图片加密 转
2013-05-29 09:09 883详情请参考:【Software Myzone】:http:// ... -
Cocos2d-x 屏幕适配新解 转
2013-05-28 13:21 897详情请参考:【Software Myzone】:http:// ... -
cocos2d-x 使用TinyXML2存储数据:FDTinyXML2
2013-05-09 14:31 1072详情请参考:【Software Myzone】:http:// ... -
TinyXML2 学习
2013-05-09 14:31 796详情请参考:【Software Myzone】:http:// ... -
cocos2d-x 精灵的移动遮罩[手电筒效果]
2013-05-02 09:41 1097详情请参考:【Software Myzone】:http:// ... -
Android平台中进程与线程的基本知识
2013-05-02 09:41 730详情请参考:【Software Myzone】:http:// ... -
Jumper类游戏制作【Forest Run】
2013-04-24 16:20 547详情请参考:【Software Myzone】:http:// ... -
Cocos2D 如何做 Android 适配 转
2013-04-22 16:48 653详情请参考:【Software Myzone】:http:// ... -
类似Temple Run 游戏恢复的321倒计时实现
2013-04-22 16:47 1045详情请参考:【Software Myzone】:http:// ... -
工具库:UtilTools
2013-04-22 16:47 694详情请参考:【Software Myzone】:http:// ... -
C++的深拷贝与浅拷贝
2013-04-03 10:23 782详情请参考:【Software Myzone】:http:// ... -
Cocos2d-x Win32下的节点缩放原理研究心得【熊猫版】
2013-04-03 10:23 883详情请参考:【Software Myzone】:http:// ... -
Cocos2d-x 节点绘制流程研究心得【熊猫版】
2013-04-03 10:22 803详情请参考:【Software Myzone】:http:// ... -
基于cocos2d-x的游戏客户端优化
2013-04-03 10:22 731详情请参考:【Software Myzone】:http:// ...
相关推荐
在游戏开发领域,Cocos2d-x是一个广泛使用的开源跨平台2D游戏引擎,支持iOS、Android、Windows等多个操作系统。它基于C++,并且提供Lua和JavaScript的绑定,使得开发者可以根据自己的喜好选择合适的编程语言进行开发...
《cocos2d-x2.0射击游戏实现详解——沈大海cocos2d-x教程实例》 在游戏开发领域,cocos2d-x是一个广泛使用的2D游戏开发框架,尤其适用于跨平台的游戏开发。本教程将深入探讨如何利用cocos2d-x2.0版本实现一款简单的...
本篇文章将深入探讨cocos2d-x 3.x中关于动画制作的实践知识,通过一个具体的“点击文本标签执行人物放大招动画”的Demo来阐述其核心概念和技术。 首先,动画在游戏中的重要性不言而喻,它能够赋予角色生命力,提高...
《Cocos2d-x权威指南》是一本深入探讨Cocos2d-x框架的书籍,它为读者提供了全面的Cocos2d-x开发知识。Cocos2d-x是一个跨平台的游戏开发框架,支持iOS、Android、Windows等多个操作系统,采用C++作为主要编程语言,...
在Cocos2d-x游戏开发中,实现"双指缩放,单指拖动,双击自动放大地图"的功能是一项常见的交互设计,它为玩家提供了更直观、更友好的操作体验。下面将详细讲解如何利用Cocos2d-x库来实现这些功能。 一、双指缩放 ...
cocos2d-x提供了触摸事件处理接口,可以通过监听多个触点的坐标变化,计算缩放比例,调整场景的大小和位置,实现平滑的缩放效果。 四、资源管理与优化 `Resources`文件夹通常包含了游戏的图片、音频、XML配置文件...
本项目"连连看"是基于cocos2d-x实现的一款经典休闲游戏,下面将详细解析其关键知识点。 1. **项目结构分析**: - 在Cocos2d-x项目中,通常包括`Resources`目录用于存放资源文件,如图片、音频等;`src`或`Classes`...
《Cocos2d-x 使用Lua开发基础》 Cocos2d-x是一款强大的开源游戏引擎,广泛应用于跨平台的游戏开发,支持iOS、Android、Windows等多个操作系统。它提供了多种编程语言接口,其中Lua是一种轻量级的脚本语言,以其简洁...
《cocos2d-x 小游戏打僵尸》是一款基于cocos2d-x 2.1.4版本开发的初级游戏项目,旨在帮助新手快速入门cocos2d-x引擎的使用。cocos2d-x是一个开源的2D游戏开发框架,支持多平台,包括iOS、Android以及Windows等,它...
Cocos2D-X是一款流行的开源游戏开发框架,广泛用于创建2D游戏、演示和其他图形交互应用。在Cocos2D-X 2.2.3版本的学习中,触屏事件处理是移动平台上非常重要的一环,因为它涉及到用户与游戏的直接交互。在本篇学习...
cocos2d-x是一个跨平台的游戏开发框架,它允许开发者使用C++或者其他支持的语言(如Lua、JS)来创建2D游戏、应用和其他交互式内容。在这个示例中,我们看到代码主要涉及了两个核心部分:触摸事件处理和应用程序保护...
7. **多平台兼容**:Cocos2d-x支持多平台,确保手势识别代码在iOS、Android、Windows等平台上都能正常工作。 通过以上步骤,开发者可以在Cocos2d-x中实现高效且自定义的手势识别功能,提升游戏的交互性和趣味性。在...
Cocos2d-x提供了多线程支持,源码中可能会看到如何合理分配任务到不同线程,以保证游戏流畅运行。另外,内存管理和渲染优化也是提升游戏体验的关键,源码中可能会包含相关的策略和技术。 通过分析《节奏大师》的...
1. **Cocos2d-x基础** - Cocos2d-x是Cocos2d的C++版本,提供了一个高效、易用的游戏开发环境。 - 它支持多种平台,包括iOS、Android、Windows、Mac等,使得游戏可以跨平台发布。 - Cocos2d-x使用Scene、Layer、...
### CoCos2d for iPhone:基础知识与应用指南 #### 一、概述 《CoCos2d for iPhone》是一本专为初学者准备的教程书籍,旨在帮助读者掌握使用Cocos2d for iPhone这一强大而灵活的游戏开发框架来创建令人震撼的2D...
最后,iOS平台的特性如多触点(Multi-Touch)和设备方向感应(Device Orientation)也是Cocos2d支持的功能。开发者可能利用这些特性来增强游戏的交互性和沉浸感,例如,通过滑动屏幕来滚动地图,或者根据设备方向...
Cocos2d-JS提供了`EventListenerTouchOneByOne`类,用于监听单个触点的触摸事件。我们将为每个地鼠添加这样的事件监听器,当玩家点击地鼠时,触发相应的响应,比如计算得分或判定游戏结束。 4. **计分系统**: - ...
在IT行业中,游戏开发是其中一个重要的领域,Cocos2d-x是一个广泛使用的开源游戏引擎,尤其适用于2D游戏。在这个项目中,我们关注的是在Cocos2d-x环境中实现一个带有光标和触控功能的输入框,以及注册和登录功能。这...
- 如多触点输入、高级渲染效果等。 #### 四、总结 本书通过详尽的内容和丰富的案例,为读者提供了从入门到精通cocos2d游戏开发所需的全部知识。无论你是希望进入游戏开发领域的新人,还是想要提升自己技能的专业...
综上所述,自定义Cocos2d-x 2.2.1的进度条涉及到图形渲染、动画、事件处理等多个方面,需要结合实际项目需求进行设计和实现。通过阅读提供的博客链接(http://write.blog.csdn.net/postlist)可以获得更具体的实现...