这次作业和上次比起来在代码量上会更大一些,处理上也更复杂,其中一个比较主要的要求就是使用MVC框架:

```
Model View Controller,是模型 (model)-视图 (view)-控制器 (controller)的缩写,
目的在于将model和view的实现代码分离开来表现不同的形式。
```
![在这里插入图片描述](https://img-blog.csdnimg.cn/18d012a9f9064404a632f7269c607786.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6IOh57OK57OKMzM=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
那么MVC框架的优点是什么呢?在一定程度上将Model与View的分离,降低了代码的耦合性,**软件用户界面和业务逻辑分离以使代码可扩展性、可复用性、可维护性、灵活性加强**。

View层是界面,Model层是业务逻辑,Controller层用来调度View层和Model层,将用户界面和业务逻辑合理的组织在一起,起粘合剂的效果。所以Controller中的内容能少则少,这样才能提供最大的灵活性。Controller的作用就是将不同的Model和不同的View组合并实现它们之间消息的传递。但是Controller之间不能相互调用,只能通过继承将代码提升至父类。

**组成MVC的三个模式分别是组合模式、策咯模式、观察者模式**

组合模式只在视图层活动, 视图层的实现用的就是组合模式。组合模式的类层次结构是树状的,因为组合模式就是从界面设计的通用解决方案总提炼出来的

观察者模式由被观察的对象和观察者两部分组成,观察者也被称为监听者,Model是被观察的对象,View是观察者,Model层一旦发生变化,View层即被通知更新。

策略模式是View和Controller之间的关系,Controller是View的一个策略,Controller对于View是可替换的, View和Controller的关系是一对多。

3D游戏恶魔与牧师(动作分离)相关推荐

  1. 魔鬼与牧师——动作分离版

    首先回顾一下牧师与魔鬼的小游戏的要求: 在河的一边有三个牧师和三个恶魔.他们都想去这条河的另一边,但是只有一条船,而且这条船每次只能载两个人.一定有一个人把船从一边开到另一边.在flash游戏中,你可 ...

  2. 魔鬼与牧师动作分离版

    关于动作分离.可以通过对游戏对象增加可执行的动作,可以划分出很多的基础动作,如上船,下船,前进后退等.所以我们可以通过提取基础动作,然后使用类的方法来执行游戏对象的动作,同时通过配备动作管理者,让其去 ...

  3. Unity 3D游戏三:牧师与魔鬼

    前言 中山大学数据科学与计算机学院3D游戏课程学习记录博客. 游戏代码:gitee 游戏视频:bilibili 参考师兄的博客: 师兄博客 游戏要求 列出游戏中提及的事物(Objects) 对象:牧师 ...

  4. Silverlight.XNA(C#)跨平台3D游戏研发手记:(十)3D 场景与控制设计①

    模型和骨骼动画仅仅是开启3D游戏的敲门砖,置入基于摄像机的场景设计方能呈现最完美的3D游戏.本节,我们依旧从简单着手,一步步创建基于模型的3D游戏场景. <XNA4.0学习指南(中文)>是 ...

  5. 3D游戏编程与设计 HW 4.5 牧师与恶魔(动作分离版)

    3D游戏编程与设计 HW 4.5 牧师与恶魔(动作分离版) 文章目录 3D游戏编程与设计 HW 4.5 牧师与恶魔(动作分离版) 1.作业要求 2.游戏制作 ① 设计思路 ② 设计代码 一.Actio ...

  6. 3D游戏设计-牧师与魔鬼_动作分离版

    天空盒 天空盒 前情提要 3D游戏设计-牧师与魔鬼 游戏改进 将每个需要移动的游戏对象的移动方法提取出来,建立一个动作管理器来管理这些移动方法. 优点: 程序更能适应需求变化 对象更容易被复用 程序更 ...

  7. 【3D游戏编程与设计】四 游戏对象与图形基础 : 构建游戏场景+牧师与魔鬼 动作分离版

    [3D游戏编程与设计]四 游戏对象与图形基础 : 构建游戏场景+牧师与魔鬼 动作分离版 基本操作演练 下载 Fantasy Skybox FREE, 构建自己的游戏场景 下载 Fantasy Skyb ...

  8. Unity3D游戏编程-牧师与恶魔 动作分离版

    Unity3D游戏编程-牧师与恶魔 动作分离版 文章目录 Unity3D游戏编程-牧师与恶魔 动作分离版 作业要求 项目配置 项目演示 视频演示 项目下载 文字说明 项目截图 实现过程和方法(算法) ...

  9. Unity牧师与魔鬼小游戏(动作分离版)

    Unity牧师与魔鬼小游戏(动作分离版) 前言 这是中大计算机学院3D游戏编程课的一次作业,在这里分享一下设计思路. 主要代码上传到了gitee上,请按照后文的操作运行. 项目地址:https://g ...

最新文章

  1. 刻意练习:LeetCode实战 -- Task04. 三数之和
  2. iOS学习笔记---oc语言第八天
  3. 一个例子理解什么是RPC?
  4. VTK:超树网格源用法实战
  5. # 傅立叶变换 画曲线_让你永远忘不了的傅立叶变换解析
  6. vba 将xml导入到excel
  7. 利用 OpenMP 实现埃拉托斯特尼(Eratosthenes)素数筛法并行化
  8. linux 命令快捷,Linux常见命令快捷方式(示例代码)
  9. phpcms V9 栏目管理
  10. HCIA H12-211题库解析
  11. rhythmbox插件开发笔记1:简介入门
  12. java 求arctan()
  13. 【原创】ubuntu下收听香港电台和其他电台
  14. sql server 2000企业管理器中没有项目
  15. VOLTE与VOWIFI对比
  16. Unity旋转之四元数(开关车门,第一人称控制器)
  17. Word控件Spire.Doc 【文本】教程(5) ;从 Word 文档中的文本框中提取文本
  18. excel.js实践(2021-6-25)
  19. pleasureupafanfou
  20. html div 动态赋值,JS获取DIV动态高度,并赋值到其style样式中

热门文章

  1. 800G自动化类、嵌入式类以及前端学习资料
  2. 4天你也可以自己处理二代三代转录组数据分析
  3. PyTorch :YOLOv5实战
  4. 用C语言判断三条边能不能形成三角形并计算出面积
  5. java植物大战僵尸思路_JAVA课程设计——植物大战僵尸(团队)
  6. 联盟链初识以及Fabric环境搭建流程
  7. PVE迁移的一些问题
  8. .zip.001 .zip.002怎么用压缩包解压缩
  9. 【ELM时序预测】基于多尺度集成极限学习机实现寿命预测附matlab代码
  10. 60秒验证码JQ60秒验证码