游戏开发中的几个要素

一、游戏首要的要素便是角色,如果将角色归纳为一个MVC架构的话:

1、模型便是角色的位置信息,属性之类的。

2、视图则是一些图片集合,有规则的组合它们,将它们分成若干组,那么每一组就是一个动作。每个组有若干张图片,一般的它们通过时间来决定应该怎样呈现这个视图(亦即显示哪张图片)。可以设置动作,让这个视图有不同的行为。一般的,我们称这个视图为精灵(Sprite),精灵将在另一篇文章中描述。

3、控制器就是用来设置角色动作的。它有可能是对精灵的一个简单的代理,假如控制器设置角色状态为行走,那么可能控制器只是简单的调用了精灵的setAction(ActionRun)方法,并且有精灵自己去设置速度。     当然也可以这样去实现控制器,一方面它通过代理设置精灵的动作,同时也去修改对象的物理属性。控制器可能由玩家来操作,也有可能由NPC的A.I.进行操作,也有可能来自网络。

二、接下去比较重要的便是地图模块。对于地图,目前只把它当成一个MV结构。

1、模型层:地图一般有各种碰撞线或者每个块有不同的状态(比如能否通过该块),所以这些状态都应该保存在地图的模型中。

2、视图层:地图一般通过外部的编辑工具来设计的。一般的,地图很少在游戏过程中变动,所以将它直接保存在内存中的一张图片中。对于地图怎么创建的,将在另一篇文章描述。

三、物理引擎。

物理引擎一般对对象进行碰撞检测,以及改变对象的运动状态。对于一些简单的游戏,只要设计简单的物理引擎就可以了。对于对物理效果要求比较高的游戏,最好套用现成的比较成熟的引擎。

四、用户界面元素。

这个模块提供各种窗口,按钮来供交互。

五、游戏的“Holder ”:

它是游戏的持有者,它持有几乎所用的游戏对象,它维护游戏的正常运作。它与资源管理器协同完成游戏对象(比如窗口,角色,地图)的创建,以及释放资源。它定时驱动渲染线程,解析角色的动作,我这里它组合有物理引擎。

六、游戏的资源管理器。

游戏运行过程中需要大量的图片相关的资源。而且很多游戏中,一个相同造型的角色会有好几份拷贝,如果没有进行良好的设计的话,这些角色就会持有不同的图片资源的拷贝。因此特意设计了资源管理器,GameHolder创建对象时,都会向资源管理器申请资源,如果该资源已经加载到内存中了,就会返回资源的引用;如果没有,就会载入该资源。

转载于:https://blog.51cto.com/mooncity/1001833

游戏开发随想之2D游戏架构相关推荐

  1. ​Unity 2D游戏开发教程之2D游戏的运行效果

    ​Unity 2D游戏开发教程之2D游戏的运行效果 2D游戏的运行效果 本章前前后后使用了很多节的篇幅,到底实现了怎样的一个游戏运行效果呢?或者说,游戏中的精灵会不会如我们所想的那样运行呢?关于这些疑 ...

  2. Unity 2D游戏开发教程之2D游戏的运行效果

    Unity 2D游戏开发教程之2D游戏的运行效果 2D游戏的运行效果 本章前前后后使用了很多节的篇幅,到底实现了怎样的一个游戏运行效果呢?或者说,游戏中的精灵会不会如我们所想的那样运行呢?关于这些疑问 ...

  3. unity 2d 游戏开发教程(2d战棋)

    unity 2d 游戏开发教程(2d战棋) 类似的游戏有:火焰纹章,梦幻模拟战 先上效果 源码领取方式:私信发送 2D战棋资料领取 这是 unity3d 战棋游戏开发 专题的内容拓展 这个专题完整的讲 ...

  4. Unity 2D游戏开发教程之为游戏场景添加多个地面

    Unity 2D游戏开发教程之为游戏场景添加多个地面 为游戏场景添加多个地面 显然,只有一个地面的游戏场景太小了,根本不够精灵四处活动的.那么,本节就来介绍一种简单的方法,可以为游戏场景添加多个地面. ...

  5. 游戏开发 unity3d python_游戏研发系列 Unity3D/2D游戏开发从0到1 第2版.pdf

    作 者 :刘国柱著 出版发行 : 北京:电子工业出版社 , 2018.01 ISBN号 :978-7-121-33499-3 页 数 : 507 丛书名 : 游戏研发系列 原书定价 : 99.00 开 ...

  6. 【游戏开发】《Java游戏服务器架构实战》项目在windows上部署

    [游戏开发]<Java游戏服务器架构实战>项目在windows上部署 文章目录 [游戏开发]<Java游戏服务器架构实战>项目在windows上部署 一.配置项目基础环境 二. ...

  7. Unity 2D游戏开发视频教程 Unity 2D Game Developer Course Farming RPG

    Unity 2D游戏开发视频教程 Unity 2D Game Developer Course Farming RPG Unity 2D游戏开发课程农业RPG MP4 |视频:h264,1280×72 ...

  8. 【Visual C++】游戏开发笔记二十 游戏基础物理建模(二) 重力系统的模拟

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. http://blog.csdn.net/zhmxy555/article/details/7496200 作者:毛星云    邮箱: h ...

  9. 【Visual C++】游戏开发笔记十五 游戏人工智能(一) 运动型游戏AI

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow 本系列文章由zhm ...

最新文章

  1. C++对象模型7——类的成员函数、反汇编虚析构函数、RTTI、多态的开销
  2. java comp env 区别_加和不加java:comp/env/前缀有什么区别?
  3. 春节期间,你错过了这些开源论文 | Paper + Code 清单
  4. 由于开发者通过接口修改了菜单配置_开发者说:Seata 0.7.0 版本,你 get 'Metrics' 技能了吗?...
  5. linux输出文字的颜色特效
  6. dubbo 路由配置_Dubbo-go v1.5.1发布,Dubbo 的 Go实现
  7. python函数的参数可以接收哪些类型的数据_Python参数类型以及实现isOdd函数,isNum函数,multi函数,isPrime函数...
  8. 某交规模拟考试系统验证绕路手记
  9. Java虚拟机工作原理详解 (一)
  10. shape中的ring标签的使用方法
  11. 第10章 项目沟通管理
  12. python数字转换英文26字母_用python实现英文字母和相应序数转换的方法
  13. [游戏杂谈]浅谈单机游戏制作人到底应该具备什么样的能力
  14. Python编码错误的解决办法SyntaxError: Non-ASCII character '\xe5' in file
  15. (转)windows 7兼容软件列表搜集加转帖
  16. JAVA工程师最新面试题(来源于互联网)
  17. 弦理论三先驱获2020年狄拉克奖
  18. 难受难受,真它吗的难受... ...
  19. 餐厅菜单html代码,html5css3 3D餐厅菜单概念_订餐菜单选择工具
  20. CSDN文章转onenote笔记(markdown)

热门文章

  1. POJ2391 Floyd+离散化+二分+DINIC
  2. hdu4912 LCA+贪心
  3. hdu 1044 BFS(压缩图)+DFS
  4. 【错误记录】编译 Linux 内核报错 ( /bin/sh: 1: flex: not found )
  5. 【Android 进程保活】应用进程拉活 ( 系统 Service 机制拉活 | Service 组件 onStartCommand 方法分析 | 源码资源 )
  6. 【Android 安全】DEX 加密 ( 代理 Application 开发 | 项目中配置 OpenSSL 开源库 | 使用 OpenSSL 开源库解密 dex 文件 )
  7. 会声会影x7 每次安装均会提示:已安装这个产品的另一个版本
  8. 判断三个数最大的数 从结果出发思考问题
  9. Server Tomcat v7.0 Server at localhost failed to start.解决办法(图文详解)
  10. The differences between capturing and bubbling