位置: 编程技术 - 正文

Android游戏开发:游戏框架的搭建(1)(Android游戏开发pdf)

编辑:rootadmin

推荐整理分享Android游戏开发:游戏框架的搭建(1)(Android游戏开发pdf),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:Android游戏开发实训总结,Android游戏开发教程,Android游戏开发pdf,Android游戏开发入门,Android游戏开发入门,Android游戏开发入门,Android游戏开发实训总结,android游戏开发框架,内容如对您有帮助,希望把文章链接给更多的朋友!

  通常情况下,游戏开发的基本框架中,一般包括以下模块:

  窗口管理(Window management):该模块负责在Android平台上创建、运行、暂停、恢复游戏界面等功能。

  输入模块(Input):该模块和视窗管理模块是密切相关的,用来监测追踪用户的输入(比如触摸事件、按键事件、加速计事件等)。

  文件输入输出(File I/O):此模块用来读取assets文件下图片、音频等资源。

  图像模块(Graphics):在实际游戏开发中,这个模块或许是最复杂的部分。它负责加载图片并把它们绘制到屏幕上。

  音频模块(Audio):这个模块负责在不同的游戏界面加载音各类频。

  网络(networking):如果游戏提供多人游戏联网功能,此模块就是必须的。

  游戏框架(Game framework):该模块把以上各种模块整合起来,提供一个易用的框架,来轻松地实现我们的游戏。

  下面对每一个模块进行详细的描述。

1. 窗口管理

  我们可以把游戏的窗口想象成一个可以在它上面绘制内容的画布。窗口管理模块负责定制窗口、添加各种UI组建、接受各类用户的输入事件。这些UI组件或许可以通过GPU等硬件加速(比如使用了OpenGL ES)。

  该模设计时不是提供接口,而是和游戏框架整合在一起,之后会有相关的代码贴出。我们需要记住的是应用程序状态和窗口事件是该模块必须处理的事情:

    Create: 当窗口被创建时被调用的方法。

    Pause: 当应用程序由于默写原因暂停时调用的方法。

    Resume: 当应用程序恢复到前台时调用的方法。

2.输入模块

  大部分操作系统中,输入事件( 比如触屏事件、按键事件)是通过当前的窗口调度(dispatched)的,窗口再进一步把这些事件派发给当前选中的组件。因此我们只需要关注组件的事件即可。操作系统提供的UI APIs提供了事件分发机制,我们可以很容易地注册和监听事件,这也是输入模块的主要职责。有两种处理事件的做法:

  轮询(Polling):在这种机制下,我们仅检查输入设备的当前状态,之前和之后的状态并无保存。这种输入事件处理适合处理诸如触屏按钮事件,而不适合跟踪文本的输入,因为按键事件的顺序并未保存。

  基于事件的处理(Event-based handling):这种机制提供了记忆功能的事件处理,比较适合处理文本输入或者其他需要按键次序的操作。

  在Android平台中,主要有三种输入事件:触屏事件、按键事件和加速计事件,前两种时间使用轮询机制和基于事件处理的机制都适合,加速计事件通常是轮询机制。

Android游戏开发:游戏框架的搭建(1)(Android游戏开发pdf)

  触屏事件有三种:

    Touch down: 手机触屏时发生。

    Touch drag: 手指拖动时发生,此前有Touch down事件产生。

    Touch up: 手指抬起时发生。

  每种触摸事件有相关的辅助信息:触屏的位置、指针索引(多点触摸时用来追踪识别不同的触点)

  键盘事件包括两种:

    Key down: 按下键盘时触发。

    Key up: 释放键盘时触发。

  每种按键事件也有相关的辅助信息:Key-down事件存储按键码,Key-up事件存储按键码和实际的Unicode字符。

  加速计事件,系统不停的轮询加速剂的状态,并以三位坐标标识。

  基于以上介绍,下面定义输入模块的一些接口,用来轮询触屏事件、按键事件和加速计事件。代码如下:

  Input.java

  上述定义包括两个静态类:KeyEvent 和 TouchEvent。KeyEvent类和TouchEvent类都定义了相关事件的常量。KeyEvent同时定义了几个存储事件信息的变量:类型(type)、按键码(keyCode)和Unicode字符(keyChar)。TouchEvent也一样,定义了位置信息(x,y)、某个出触摸点的ID。比如第一个手指按下,ID是0,第二个手指按下 ID是1;如果两个手指按下,手指0释放,手指1保持,又一个手指按下时,ID为已经释放的0.

  下面是输入接口中的轮询方法:Input.isKeyPressed()输入参数是 keyCode,返回相应的按键是否按下的布尔&#;;Input.isTouchDown(),Input.getTouchX()和Input.getTouchY()返回给定指针索引是否按下、对应的横竖坐标&#;,注意当对应的指针索引不存在时坐标&#;是未定义的。Input.getAccelX(), Input.getAccelY(), and Input.getAccelZ() 返回各自的加速计的坐标&#;;最后两个方法用作基于事件处理机制的,他们返回KeyEvent和TouchEvent实例,用于记录上次事件触发的信息,最新的事件在列表的最后。

  通过这些简单的接口和类的,我们构建了我们的输入接口。下节继续分析文件处理的内容(File I/O)。

3. 文件读写(File I/O)

  读写文件在游戏开发中是一项十分重要的功能。在Java开发中,我们主要关注InputStream和OutputStream及其实例,它们是Java中读写文件的标准方法。游戏开发中,比较多的是读取资源文件,比如配置文件、图片、音频文件等;写入文件的操作一般在保存用户进度和配置信息时使用。

  下面是文件读写的接口:

  FileIO.java

  上述代码中,我们传递一个文件名作为参数,返回一个流,具体的执行会在接口的实现中体现。同时我们会抛出一个IOException异常以防止读写文件出错。当我们完成读写后,需要关闭输入输出流。Asset 文件从应用程序的APK文件中读取,其他文件一般从内置存储器或者SDCard上读取,分别对应上述代码中的三个方法。

《Android4游戏编程入门经典》读后感 作者:chszs,转载需注明。博客主页:

cocos2dx3.2 整体概览(二)—— Director(导演) 导演一词让人联想到了拍电影,没错,我们所制作的游戏,就相当于给游戏玩家安排体验了一场电影,而导演就是控制整场电影流程的关键所在。引擎

cocos2dx3.2 整体概览(一)—— 渲染树 当我们想直接进行游戏的制作时,最先想到了多是我的人物怎么显示在屏幕上,还有背景,动作什么的。因此,在实践开始先了解一下游戏编程里的一

标签: Android游戏开发pdf

本文链接地址:https://www.jiuchutong.com/biancheng/371263.html 转载请保留说明!

上一篇:cocos2dx3.2 屏幕适配浅析(cocos屏幕适配方案)

下一篇:《Android4游戏编程入门经典》读后感(android游戏编程之从零开始)

  • 租赁办公场所的请示
  • 纳税调整项目包括哪些?请简单列举
  • 受托加工开票如何选名称
  • 增值税普通发票和普通发票的区别怎么交税
  • 注册资本5块钱
  • 小规模纳税人每季度超过30万交税
  • 汇算清缴职工福利支出
  • 虚假会计凭证的处罚
  • 未实缴出资的股东退股
  • 质押费用计入什么科目
  • 从国外购进样品要交税吗
  • 事业单位开展活动的意义
  • 补缴以前年度养老保险能否税前扣除
  • 企业房屋装修费如何入账
  • 食堂伙食费怎么入账
  • 增值税专用发票可以开电子发票吗
  • 出口样品可以申请专票吗
  • 当期所得税费用与递延所得税费用
  • 地方教育费附加的会计分录
  • 利息资本化的时点
  • 年度中间符合小数怎么算
  • 培训机构收一年费用合法吗
  • 已经认证的发票怎么冲红
  • 企业所得税汇算清缴扣除比例
  • 银行承兑汇票接收
  • 长期待摊费用科目还用吗
  • win7旗舰版分辨率调高了黑屏怎么办
  • win11如何调整鼠标中键
  • 苹果macOS 13.3 RC 发河北承德市承德县华夏电器
  • 营改增后的增值税税目税率表
  • hpptd.exe
  • 完工产品成本怎么分配
  • 从小规模纳税人购进农产品进项税怎么计算
  • 无偿转让房屋
  • 小型微利企业减免所得税计算公式
  • vue2计算属性和vue3的计算属性的区别
  • ChatGPT 的 10 种集成模式:从开源 AI 体验平台 ClickPrompt 中受到的启发
  • ChatGPT助力校招----面试问题分享(四)
  • 增值税专用发票和普通发票的区别
  • 企业应设置的账簿包括什么
  • python爬虫入门教程
  • 银行账户管理的直接责任人是共享中心核算会计
  • 所得税做账是否需要发票
  • 签三方协议需要法人本人去吗
  • 交强险怎么报警
  • 免税黄金什么意思
  • 零申报一般怎么收费
  • 销项税额专栏记录企业销售货物
  • 差旅费中火车票的进项税怎么计算
  • 税务评估价多久更新一次
  • 一般纳税人进销存怎么做
  • 研发支出计入产品成本吗
  • 研发费用加计扣除的条件
  • 非关联企业之间可以借款吗
  • 年底计提利息会计分录
  • 余额调节表怎么填写例题
  • mysql字符串类型有哪些
  • win7系统如何彻底删除xp
  • freebsd 安装
  • bios各项参数的意义
  • wlanplus是什么软件
  • 安装centos图形界面
  • vista和win10
  • win7系统360浏览器自启动怎么关闭
  • win7的系统升级win10
  • python 爬虫例子
  • perl数组元素个数
  • 慎用是能用还是不能用
  • javascript高级程序设计电子书
  • 如何使用nodejs
  • 理解和运用的重要性要站在哪个的视觉去判断
  • jquery自定义插件
  • python相似模块用例
  • python tornado框架
  • 小规模纳税人收到增值税专用发票怎么办
  • 国家税务总局,河北省税务局
  • 上海42年工龄退休有没有补充养老金呢
  • 公司财税知识
  • 城镇土地使用税减免税政策
  • 代理记账公司前期准备流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设