LibGDX_4.1: LibGDX 游戏开发框架
2015-12-06 02:16
232 查看
本文链接: http://blog.csdn.net/xietansheng/article/details/50187027
LibGDX 基础教程(总目录)
M(Model,数据模型): 封装游戏中的各种数据。例如 游戏背景图片; 游戏人物的位置,角度,血值,得分等所有表述游戏组成的数据。
C(Controller,控制器): 实时接收用户输入(例如触摸屏幕,点击鼠标,按下按键等),根据用户不同的输入,改变数据模型中的相应数据(例如改变人物位置,增加得分等)。
V(View,视图): 游戏画面的显示,实时或当游戏数据改变时,将在内存中的模型表述的游戏数据更新绘制到屏幕上。
MVC 与 用户交互图示:
被动更新: 只有在游戏数据有改变时才手动更新一次画面。这种方式适合画面没有需要实时改变的游戏,例如棋牌类游戏。
主动更新: 游戏开始后,不管数据是否有改变,画面不停地实时绘制更新所有数据,一般最大为每秒更新绘制 60 次,即帧率为 60。这种方式适合画面动画多,数据画面实时变化的游戏,例如跑酷类游戏。
这两种更新方式 LibGDX 都支持,默认为主动更新。
下面通过对比 Android 应用开发的 组件 和 控件 介绍 场景、舞台、演员:
场景(Screen): 一个场景可以理解为一个游戏界面,类似 Android 中的 Activity,一个游戏由多个场景(界面)组成,通常包括开始界面、游戏 / 关卡界面、帮助界面等。
舞台(Stage): 一个舞台可以理解为场景中的一个图层,类似 Android 中 FrameLayout / RelativeLayout,一个场景可以包括一个或多个舞台(图层),例如一个“游戏关卡舞台”和一个“结束游戏舞台”,正在游戏时隐藏“结束游戏舞台”,游戏结束时显示“结束游戏舞台”。
演员(Actor): 演员表示游戏中的最基本元素,类似 Android 中的 TextView / ImageView / Button,一个舞台中包含多个演员,例如 背景图片,游戏人物,怪物,地板,障碍物等。
后续章节将详细介绍场景,舞台,演员等的使用。
LibGDX 基础教程(总目录)
1. 游戏中的 MVC
个人觉得游戏开发可以看做是标准的 MVC 设计模式:M(Model,数据模型): 封装游戏中的各种数据。例如 游戏背景图片; 游戏人物的位置,角度,血值,得分等所有表述游戏组成的数据。
C(Controller,控制器): 实时接收用户输入(例如触摸屏幕,点击鼠标,按下按键等),根据用户不同的输入,改变数据模型中的相应数据(例如改变人物位置,增加得分等)。
V(View,视图): 游戏画面的显示,实时或当游戏数据改变时,将在内存中的模型表述的游戏数据更新绘制到屏幕上。
MVC 与 用户交互图示:
2. 游戏画面的更新方式
游戏画面的更新主要有两种方式:被动更新: 只有在游戏数据有改变时才手动更新一次画面。这种方式适合画面没有需要实时改变的游戏,例如棋牌类游戏。
主动更新: 游戏开始后,不管数据是否有改变,画面不停地实时绘制更新所有数据,一般最大为每秒更新绘制 60 次,即帧率为 60。这种方式适合画面动画多,数据画面实时变化的游戏,例如跑酷类游戏。
这两种更新方式 LibGDX 都支持,默认为主动更新。
3. 游戏框架
LibGDX 对游戏中的 MVC 进行了更为细致的封装,主要是对数据模型的封装,使开发者更加方便地去组织游戏程序。LibGDX 将一个游戏的运行看做是拍一场电影,主要由 场景,舞台,演员组成。LibGDX游戏开发通过 场景(Screen),舞台(Stage),演员(Actor)以及 精灵(Sprite)之间的联系进行组织游戏的绘制、碰撞检测、事件处理、逻辑处理等。LibGDX开发游戏的模式如下图所示:下面通过对比 Android 应用开发的 组件 和 控件 介绍 场景、舞台、演员:
场景(Screen): 一个场景可以理解为一个游戏界面,类似 Android 中的 Activity,一个游戏由多个场景(界面)组成,通常包括开始界面、游戏 / 关卡界面、帮助界面等。
舞台(Stage): 一个舞台可以理解为场景中的一个图层,类似 Android 中 FrameLayout / RelativeLayout,一个场景可以包括一个或多个舞台(图层),例如一个“游戏关卡舞台”和一个“结束游戏舞台”,正在游戏时隐藏“结束游戏舞台”,游戏结束时显示“结束游戏舞台”。
演员(Actor): 演员表示游戏中的最基本元素,类似 Android 中的 TextView / ImageView / Button,一个舞台中包含多个演员,例如 背景图片,游戏人物,怪物,地板,障碍物等。
后续章节将详细介绍场景,舞台,演员等的使用。
相关文章推荐
- javascript制作游戏开发碰撞检测的封装代码
- 跨平台移动WEB应用开发框架iMAG入门教程
- Android游戏开发实践之人物移动地图的平滑滚动处理
- PHP跨平台获取服务器IP地址自定义函数分享
- 跨平台python异步回调机制实现和使用方法
- Libgdx之封装简单的脚本机制
- Libgdx学习笔记:UI之技能冷却按钮
- 游戏服务器端开发要点
- 跨平台音频项目
- tvOS游戏开发系列(SpriteKit)之准备工作(一)
- tvOS游戏开发系列(SpriteKit)之新建tvOS游戏项目(二)
- 开源游戏 “打飞机”
- 开源游戏 “Elvish Bird”
- 开源游戏“2048”IOS移植版
- 游戏开发如何成功
- 【v2.x OGE教程 15】布局相关
- 【v2.x OGE-example 第二节】 实体参数
- HTML5简介
- [转]C++强大背后
- [游戏资讯][转]《反恐精英:全球攻势》要实现跨平台对战