在编写游戏代码之前,必须要仔细地理顺思路,清晰地构建出整个游戏的框架。有的开发者经常抱怨说,游戏开发到最后总是千头万绪,一旦出现bug就不知道该如何修改,身心疲惫甚至是痛不欲生。其实不然,只要搭建好了游戏的架构,就不会再走到骑虎难下的尬境,游戏开发就会成为一个极其享受的过程,成为一个高技术性的商业艺术创造过程。
  我们将逐步地展示“是男人就坚持20秒”游戏架构的搭建过程。在掌握策划案的基础上,开发者应该迅速作出判断,细分出游戏的功能模块。“是男人就坚持20秒”的功能模块可以如表9-3-4所示进行划分。

  

  ▲表9-3-4功能模块

  成了项目流程图之后,还不能直接进行Android游戏编程,项目执行流程和游戏运行流程是存在着较大差别的。因为项目流程图只是从用户体验角度(或者策划角度)进行的宏观描述,它只是起到过渡作用;而用于编程的流程图则是基于程序角度给出的微观描述,它将涉及到编程的实际环境。因此,我们还需要分析一下游戏实际运行的流程,而我们将要分析的这个流程就是传说中的“状态转换”。是男人就坚持20秒”的游戏状态相对比较简单,只有如表9-5所示的4种状态。

  

  ▲9-3-5游戏的4种状态

  当然,这个游戏总共就只有一关,所以关卡资源加载就只能加载唯一的一关的资源。
  接下来,就需要来做游戏状态的转换图了。状态转换一般通过有限自动机来表示,“是男人就坚持20秒”的状态转换比较简单,下面给出一种状态转换的参考图,如图9-3-5所示:

  

  ▲9-3-5游戏运行阶段细化流程图

  完成了前面几步的准备工作,框架基本上就已经出来了。虽然“是男人就坚持20秒”的架构比较简单,但是通用性和扩展性都比较强,下面的这段伪代码给出了一种高效的游戏框架,以供参考: While (游戏未结束)

  {

  State_change(); // 状态转换

  Update_fps(); // 状态执行

  Draw(); // 绘制

  }

  • State_change()函数完成游戏状态间的转换,可以根据图9 - 3状态转换图实现,不再赘述。

  • Update_fps()函数框架的伪代码如下:

  Update_fps()

  {

  Switch(游戏状态)

   Case  资源加载:

   Case  进入关卡:

  Load_gate(); // 加载背景、飞机、炮弹的图片。

  ase 游戏菜单:

   If  (游戏结束) 计算游戏结果

  ase 游戏进行:

  New_paodan(); // 产生新炮弹

  Move(); // 计算出该时刻飞机以及所有炮弹所在的位置

  Is_pengzhuang(); // 碰撞判断

  ase 游戏暂停:

  Thread_pause(); // 游戏暂停操作。

  • Draw()函数框架的伪代码如下:

  Draw()

  {

  Switch(游戏状态)

   Case  游戏进行:

  Draw_background(); // 绘制背景

  Draw_paodan(); // 画炮弹

  Draw_feiji(); // 画飞机

   Case  其他:

  略....

  }

  注意:
  • 上述的draw()函数参考框架并不是适用于所有游戏的。特别是使用了3d特效,或者需要实现图层
  管理器的游戏。draw()函数应该根据实际需要量身定制。
  • 上述的draw()函数参考框架并不能保证绘图性能最优,高性能的图像绘制框架将非常复杂。
  完成了游戏架构之后,不要忘记把思考的结晶凝结为文档资料。建议完成如下文档:
  • 项目开发时程表
  • 功能模块划分及接口表
  • 技术备案表
  这三个表将帮助游戏开发人员明晰责权、监管制作,并为数据统计提供便利。

android游戏开发的架构相关推荐

  1. 【Android游戏开发十七】让玩家自定义手势玩转Android游戏!—Android Gesture之【输入法手势技术】...

    为什么80%的码农都做不了架构师?>>>     李华明Himi 原创,转载务必在明显处注明: 转载自 [黑米GameDev街区] 原文链接:  http://www.himigam ...

  2. 【Android游戏开发之八】游戏中添加音频-详解MediaPlayer与SoundPoo!并讲解两者的区别和游戏中的用途!...

    为什么80%的码农都做不了架构师?>>>     李华明Himi 原创,转载务必在明显处注明: 转载自 [黑米GameDev街区] 原文链接:  http://www.himigam ...

  3. android游戏开发教程之基本概念

    对于不管从事任何行业 使用任何编程语言的人们来说 当接触一个新知识 或者新出现的一个新平台来说 了解其基础知识非常重要 这在这里我指针对与android游戏开发的人来说 刚接触它的时候不了解andro ...

  4. Android游戏开发教程

    几个月前,我们收到了来自Java开发人员Tamas Jano的电子邮件,要求加入我们的JCG合作伙伴计划. 令我们惊讶的是,他维护了一个名为" Against The Grain " ...

  5. libgdx教程_使用libgdx进行Android游戏开发–一天中的原型,第1b部分

    libgdx教程 创造游戏并展现世界 要将世界渲染到屏幕上,我们需要为其创建一个屏幕,并告诉它渲染世界. 在libgdx中,有一个名为Game的便利类,我们将把StarAssault类重写为StarA ...

  6. libgdx教程_使用libgdx进行Android游戏开发–一天中的原型,第1a部分

    libgdx教程 在本文中,我将绕开游戏引擎和组件的构建模块,并演示如何使用libgdx库快速制作游戏原型. 您将学到什么: 创建一个非常简单的2D Shooter Platformer游戏. 完整的 ...

  7. libgdx开发指南_使用libgdx进行Android游戏开发–一天中的原型,第1a部分

    libgdx开发指南 在本文中,我将绕开游戏引擎和组件的构建模块,并演示如何使用libgdx库快速制作游戏原型. 您将学到什么: 创建一个非常简单的2D Shooter Platformer游戏. 完 ...

  8. 适用于 Visual Studio 的 Android 游戏开发扩展

    在 Windows 计算机上设置 Android 游戏开发扩展并在 Android 设备或模拟器上运行示例 Visual Studio C++ 项目. 先决条件 按照本节中的步骤准备您的 Window ...

  9. 【邀您参加】Android大讲堂-Android游戏开发之捕鱼游戏

    来源:华清远见嵌入式培训中心 ● 揭开Android底层架构的神秘面纱 Android应用开发与底层开发一网打尽! ● 全程免费 网络直播 实时互动 业内专家精辟讲解 项目案例透彻分析 作为目前全球最 ...

  10. Android游戏开发起步(译文)

    英文 http://dev.chinamobile.com/cmdn/bbs/thread-13718-1-1.html 如果你有兴趣为Android平台开发游戏,有很多你需要了解的东西.我是Ligh ...

最新文章

  1. linux中使用yum安装主程序包,linux使用yum对程序包管理相关知识
  2. 2021湖南高考成绩分段查询,2021年湖南高考分数一分一段位次表,湖南高考个人成绩排名查询方法...
  3. golang int 转string_Golang的逃逸分析
  4. 每日一皮:为这位姑娘的回答鼓掌!
  5. HTML中常用字符实体
  6. Android代码数字证书,有关Android中读取证书
  7. 算法(14)-leetcode-explore-learn-数据结构-二叉树的遍历
  8. android target unknown and state offline解决办法
  9. bzoj 1637: [Usaco2007 Mar]Balanced Lineup【瞎搞】
  10. 【技术向】如何借助Tushare,学习量化理财(入门)
  11. c语言二进制强制转十六进制,C语言二进制转十六进制问题
  12. CMYK to RGB
  13. cad缩放_如何把jpg图片作为背景用cad描图?【AutoCAD教程】
  14. Using insecure protocols with repositories(已解决)
  15. springboot如何自定义starter
  16. 软件测试中的正交缺陷分析总结,正交缺陷分类(ODC)流程简介及应用经验分享(上)...
  17. 百度地图自定义大头针图片和添加标注
  18. AI 赋能教育,松鼠 AI 智适应学习方案大揭秘
  19. [基础]tfcenter的安装和启动
  20. iOS Jenkins自动化打包 上传fir、蒲公英、邮件、钉钉提醒

热门文章

  1. 万能显卡驱动win7_驱动工具更新!完美支持苹果电脑驱动
  2. 常用的ASCII码值
  3. 计算机终端保密检查系统使用教程,博智计算机终端保密检查系统
  4. 三菱modbusRTU通讯实例_PLC编程 | 用三菱PLC控制机械手实例
  5. 每日N题—数据结构题集
  6. 前端点击按钮下载图片
  7. AI人工智能技术还原康乾盛世三代皇帝样貌,太帅了!
  8. 深入浅出虚拟机-第三版笔记(重点)整理-2022-04-06
  9. 手动推jar包及查看jar包启动情况
  10. 48页PPT|小米用户画像实战,每页都是经典