CCLayer中的setTouchEnabled(true)会开启多点触摸。
如果使用CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,0,true);
只会开启一个点的触摸。
当HelloWorld::ccTouchBegan返回为false的时候,TouchDispatcher将会相应下一个优先级的触摸代理。
bool HelloWorld::ccTouchBegan(CCTouch *pTouch, CCEvent *pEvent) {
return false;
}
,如果在HelloWorld中没有设置setTouchEnabled(true),将不会响应其他触摸,因为程序中没有其他的触摸代理了。
当HelloWorld::ccTouchBegan返回为true的时候,在界面上滑动就会调用HelloWorld::ccTouchMoved(CCTouch *pTouch, CCEvent *pEvent);
在CCLayer中,默认是没有开启触摸的,如果需要相应多点触摸事件,就必须setTouchEnabled(true)。
下面看看CCLayer中的setTouchEnabled,如果设置为true,就会以0为优先级来注册触摸监听代理,优先级的值越小,优先级越高,触摸响应是按照优先级来排列响应的。
void CCLayer::setTouchEnabled(bool enabled)
{
if (m_bIsTouchEnabled != enabled)
{
m_bIsTouchEnabled = enabled;
if (m_bIsRunning)
{
if (enabled)
{
this->registerWithTouchDispatcher();
}
else
{
// have problems?
CCDirector* pDirector = CCDirector::sharedDirector();
pDirector->getTouchDispatcher()->removeDelegate(this);
}
}
}
}
void CCLayer::registerWithTouchDispatcher()
{
CCDirector* pDirector = CCDirector::sharedDirector();
if (m_pScriptHandlerEntry)
{
if (m_pScriptHandlerEntry->isMultiTouches())
{
pDirector->getTouchDispatcher()->addStandardDelegate(this, 0);
LUALOG("[LUA] Add multi-touches event handler: %d", m_pScriptHandlerEntry->getHandler());
}
else
{
pDirector->getTouchDispatcher()->addTargetedDelegate(this,
m_pScriptHandlerEntry->getPriority(),
m_pScriptHandlerEntry->getSwallowsTouches());
LUALOG("[LUA] Add touch event handler: %d", m_pScriptHandlerEntry->getHandler());
}
return;
}
pDirector->getTouchDispatcher()->addStandardDelegate(this,0);
}
转载请注明出处:http://buerkai.iteye.com
分享到:
相关推荐
《Cocos2d-x 3.x游戏开发实战》是一本深度探讨Cocos2d-x 3.x框架的游戏开发书籍,适合对游戏编程有兴趣的开发者学习。Cocos2d-x 是一个开源的、跨平台的2D游戏开发框架,广泛应用于iOS、Android、Windows等多平台的...
Cocos2d-x是一个开源的游戏开发框架,广泛用于2D游戏、实时渲染应用程序和其他互动内容的制作。这个压缩包“cocos2d-x-3.1.zip”包含了Cocos2d-x框架的3.1版本,这是一个经典且相对旧的版本,可能对于那些寻找历史...
《Cocos2d-x实战:C++卷(2版)源代码》这本书是关于使用Cocos2d-x游戏引擎进行游戏开发的专业指南。Cocos2d-x是一个开源的、跨平台的游戏开发框架,广泛应用于iOS、Android、Windows等多个操作系统。本书以C++语言...
《cocos2d-x 3.8:经典游戏引擎源码解析》 cocos2d-x 是一个跨平台的游戏开发框架,它基于C++,同时提供了Lua和JavaScript的绑定,让开发者可以方便地在多种操作系统上创建2D游戏、演示程序和其他图形交互应用。这...
这个压缩包“cocos2d-x-cocos2d-x-2.2.2.zip”包含了cocos2d-x 的2.2.2版本,该版本是cocos2d-x发展中的一个重要里程碑,它提供了许多改进和优化,使得开发者能够更加高效地创建2D游戏和应用。 在cocos2d-x 2.2.2中...
接着,书中会讲解Cocos2d-x的事件处理机制,包括触摸事件、键盘事件等,这些都是游戏交互必不可少的部分。同时,还会涉及动画和物理引擎的使用,如动作(Action)、序列(Sequence)、组(Group)以及Box2D物理引擎...
《Cocos2d-x实战 JS卷 Cocos2d-JS开发》是一本深入探讨Cocos2d-x游戏引擎JavaScript版本使用的专业书籍。Cocos2d-x是全球范围内广泛采用的游戏开发框架,尤其适用于2D游戏的制作,而Cocos2d-JS则是其JavaScript接口...
《cocos2d-x 3.0:游戏开发中的角色移动技术详解》 在游戏开发领域,cocos2d-x是一款广泛使用的开源2D游戏引擎,尤其在移动平台上的应用非常广泛。cocos2d-x 3.0版本带来了许多性能优化和新特性,使得开发者能够更...
- **事件处理**:cocos2d-x的事件系统使得游戏中的用户交互变得简单,例如触摸事件、键盘事件等。 - **场景管理**:使用Scene和Layer进行场景管理,方便地切换游戏的各个部分。 2. **益智类游戏设计**: - **...
《Cocos2d-x实战 JS卷》是一本深入探讨Cocos2d-x游戏开发的专著,主要聚焦于使用JavaScript语言进行游戏编程。Cocos2d-x是一个开源的游戏开发框架,广泛应用于移动设备和桌面平台,支持iOS、Android、Windows等多...
《cocos2d-x 3.13.1:深入解析与应用》 cocos2d-x 是一个开源的游戏开发框架,广泛应用于跨平台2D游戏的开发,支持iOS、Android、Windows等操作系统。它的3.13.1版本是一个重要的里程碑,提供了诸多改进和优化,...
本文将深入探讨如何利用cocos2d-x开发一款跑酷游戏,通过分析提供的“runningGame”源码,我们将揭示其核心知识点,帮助初学者快速入门并提升对cocos2d-x的理解。 一、项目结构解析 "runningGame"源码项目通常包含...
【cocos2d-x游戏引擎概述】 ...通过学习和分析这款三国策略游戏的源码,开发者不仅可以了解cocos2d-x框架的使用,还能深入理解游戏开发中的各种设计决策和技术实现,对提升游戏开发技能大有裨益。
8. **事件处理(Event Handling)**:cocos2d-x的事件模型允许开发者监听和响应用户的触摸、键盘等输入事件,以及游戏内部的事件,如节点的添加或删除。 9. **纹理(Texture)**:cocos2d-x使用Texture Atlas管理纹理,...
根据提供的信息,“cocos2d-x权威指南”这一标题与描述明确指出了本文将围绕cocos2d-x这一游戏开发框架展开深入探讨。cocos2d-x是一款非常流行的跨平台游戏开发引擎,支持多种编程语言如C++、JavaScript等,并且能够...
Cocos2d-x 是一个开源的游戏开发框架,主要用于创建2D游戏、图形界面以及实时应用程序。这个框架基于C++,并且提供了多种语言接口,包括Python、JavaScript和Lua,让开发者可以选择他们熟悉的编程语言进行游戏开发。...
9. **调试和性能优化**:掌握Cocos2d-x的调试工具,如Profiler,进行性能分析和优化。 10. **发布流程**:学习如何将完成的游戏打包为不同平台的应用程序,如APK或IPA,并进行测试和发布。 通过这个项目,开发者...
通过学习和实践这个光盘中的内容,开发者可以掌握cocos2d-x 3.x的核心概念,如场景管理、精灵动画、粒子系统、触摸事件处理、游戏逻辑设计等,从而能够独立地开发出高质量的2D游戏。对于希望提升游戏开发技能或转行...
Cocos2d-x的事件系统允许开发者响应用户输入、触摸、键盘等事件,实现游戏的交互功能。 九、资源管理 Cocos2d-x内置了资源加载和管理机制,支持图片、音频、字体等多种资源类型,能有效优化资源的加载和使用。 十...
cocos2d-x支持触摸、键盘、摇杆等多种输入设备的事件处理。开发者可以注册事件监听器,响应用户的交互操作,实现游戏逻辑。 七、物理引擎 集成Box2D物理引擎,cocos2d-x可以方便地实现物体碰撞检测和物理运动模拟,...