`
须等待
  • 浏览: 212192 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Andengine 学习笔记- 事件的传递

阅读更多
在Andengine的API中,Andengine负责捕获触摸事件,如果我们需要监听触摸事件,则需要向Scene注册。

mScene.registerTouchArea(touchArea);


通过查阅IToucheArea的源码发现
@Override
    public boolean contains(float pX, float pY) {
        return true;
    }

    @Override
    public float[] convertSceneToLocalCoordinates(float pX, float pY) {
        return new float[] { pX, pY };
    }

    @Override
    public float[] convertLocalToSceneCoordinates(float pX, float pY) {
        return new float[] { pX, pY };
    }

    @Override
    public boolean onAreaTouched(TouchEvent pSceneTouchEvent, float pTouchAreaLocalX, float pTouchAreaLocalY) {
        return false;
    }


一个区域里有自己的判断当前触摸的坐标是不是属于自己感兴趣的,如果不是则直接抛弃。

因为Shape类是实现了ITouchArea接口的,所以我们的Sprite等精灵类都可以直接被注册。

在Scene的源码里可以找到相关的代码,于是我们了解了,在Andengine中,监听触摸和ENtity并不是同一个概念,两者是独立的,于是这也解释了,为什么在Scene中detach了一个Entity,在其注册过监听的地方触摸还是会触发和以前一样的效果。

再来关注事件的传递,在源码中我们发现由于事件需要Area本身来判断其是否属于Area,所以在注册的时候并不存在类似Android中的父子关系,传递是根据注册的顺序一个一个进行的,但是相同的是如果一个Area宣布自己处理了时间(返回了true),传递序列就会直接终止,这里和Android中的事件是一样的。

但是这样固定的顺序会有一些问题,其实设计者已经考虑到了这个问题,于是我们在源码中发现了一个标志量:mOnAreaTouchTraversalBackToFront。 这个标志会决定当前事件的传递是正序还是逆序,这样就在一定程度上解决了我们的问题。
0
0
分享到:
评论

相关推荐

    andengine-physicseditor-extension.jar

    官方版本,亲测可用

    AndEngine游戏-DeliveryBoy-源代码

    《AndEngine游戏-DeliveryBoy-源代码》是一个用于学习AndEngine游戏开发的示例项目,其主要内容涵盖了AndEngine的基本使用、游戏逻辑构建以及资源管理等多个方面。AndEngine是一款流行的开源Android游戏开发引擎,它...

    Andengine-Android-Studio:用于游戏引擎的 Android Studio 模块,流行的标题和引擎

    Andengine-Android-Studio是将Andengine集成到Android Studio的模块,方便开发者在现代的Android开发环境中进行游戏开发。 Andengine的主要特点包括: 1. **轻量级**:Andengine的体积小巧,性能高效,对设备资源...

    andengine-gles2.jar

    AndEngine 2013-3-12 最新Jar包,直接拉进项目libs即可,可查看源代码

    AndEngine-GLES2-Example Eclipse Android 工程

    AndEngine 2013-2月 最新Example,直接导入Eclipse即可,API15, 环境 Android 4.0.3

    AndEngine范例-源码

    总之,AndEngine范例源码是学习AndEngine游戏开发的宝贵资源,通过深入研究这些示例,开发者可以快速掌握AndEngine的使用技巧,提升自己的游戏开发能力。同时,也可以借此了解2D游戏开发的基本流程和常见问题的解决...

    andengine-skeleton-android-studio:编译andEngine和andEngineBox2DExtension的就绪版本

    #AndEngine准备使用骨架 ##来自Charles Smartt Jr.和Jordan Dickow ##摘要以下是andEngine和andEnginePhysicsBox2DExtension的可编译就绪源代码集,仅在Android Studio中使用。 JNI本机扩展已被编译并包含在内,而...

    AndEngine-GLES2

    AndEngine-GLES2是一款专为Android平台设计的开源2D游戏引擎,它为开发者提供了高效且易用的工具,用于创建各种2D游戏。这款引擎以其简洁的API和丰富的功能而受到开发者的欢迎,尤其值得一提的是,曾经风靡全球的...

    AndEngine-GLES2源码

    学习AndEngine-GLES2的源码,你将了解到如何使用OpenGL ES 2.0进行图形编程,如何管理游戏状态,以及如何实现高效的性能优化。这不仅可以提升你的Android游戏开发技能,还能帮助你理解和解决实际开发中遇到的问题。...

    AndEngine_分析之三-----AsyncTask_BaseActivity备忘

    ### AndEngine分析之三——AsyncTask与BaseActivity深入解析 #### 一、AsyncTask概述 在AndEngine项目中,为了实现界面更新等操作时避免主线程阻塞的问题,使用了`AsyncTask`来处理后台任务。`AsyncTask`提供了一...

    AndEngine-document.docx.zip_andengine_android

    通过学习AndEngine,开发者可以快速构建各种2D游戏,从简单的休闲游戏到复杂的动作冒险游戏,都能轻松应对。 总的来说,AndEngine是一个强大且全面的Android游戏开发框架,它的易用性和灵活性使得它在游戏开发领域...

    AndEngine_分析之二-----BaseGameActivity. 中文

    AndEngine 中的 BaseGameActivity 详解 BaseGameActivity 是 AndEngine 框架中一个关键的组件,它是游戏的基础,负责管理游戏的引擎和SurfaceView。它继承自 BaseActivity,并实现了 IGameInterface 接口。 ...

    AndEngine游戏开发示例

    此外,AndEngine还提供了丰富的事件处理机制,使得游戏与用户交互变得简单。你可以注册触摸监听器,响应用户的点击、滑动等操作。同时,AndEngine还支持音乐和音效的播放,增强游戏体验。 在Leekao这个文件中,可能...

    andengine2.0开发的小游戏

    4. **事件处理和触摸输入**:AndEngine提供了简单的接口用于处理用户触摸事件,如点击、滑动等,方便游戏中的交互设计。 5. **扩展和模块化**:AndEngine支持各种扩展,如粒子系统、地形编辑器、音乐和音效模块,...

    andengine源码及demo

    AndEngine源码的分析和理解对于想要深入学习Android游戏开发的人来说至关重要。 1. **AndEngine基础** AndEngine的核心在于其强大的渲染引擎,它支持精灵(Sprites)、纹理(Textures)、纹理区域(Texture ...

    andEngine > 学习1

    通过深入学习AndEngine-GLES2的源码,开发者可以更好地理解游戏引擎的工作原理,进一步提升开发技能。在实际开发中,结合标签中的“源码”和“工具”,开发者可以自定义扩展,打造符合自己需求的游戏框架。

    AndEngine学习

    ### AndEngine学习:环境配置与扩展包导入详解 AndEngine是一款专为Android平台设计的开源游戏开发框架,因其高效、灵活以及丰富的功能而备受开发者青睐。本文将详细解析AndEngine的环境配置步骤以及如何导入其扩展...

    AndEngine的官网下载的Demo

    这个Demo是AndEngine官方网站提供的示例集合,用于帮助开发者更好地理解和学习如何使用AndEngine来构建游戏。以下是对AndEngine及其Demo的详细介绍: 1. **AndEngine特性**: - **跨平台**:虽然主要针对Android,...

Global site tag (gtag.js) - Google Analytics