MVC架构在游戏开发中的应用

摘要:
MVC旨在在一方发生变化时将视图与模型分开。例如,Java EE平台和iOS通常基于MVC思想。我们如何在游戏设计中使用MVC模式。2.MVC体系结构特别解释了这一点1.模型一直推荐一个想法:“所有开发都以数据位为中心”。例如,FriendModel在朋友系统中显示朋友的各种信息细节,而在朋友PK系统中,它主要显示战斗力。例如,输出负责显示上面FriendModel中保存的数据。MVC是如何组织成场景的?1.使用FriendModel和FriendView作为FriendControl的成员变量。

一 定义

MVC即Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。
MVC是一种“前端”的设计模式。


MVC的目的是:希望View和Model分离,当某一方改变时。而还有一个方不必随之改变的。
比如,Java EE平台,iOS都是典型的基于MVC思想思想的,那么我们怎么在游戏设计中使用MVC模式呢。


二 MVC架构具体解释

1 模型Model

一直推荐一种思想:“全部的开发都是以数据位中心”。在MVC中,Model就是我们的数据中心。


Model的主要工作是保存数据,处理数据组织的相关逻辑。


以游戏中的好友系统为例:FriendModel须要保存从server请求过来的数据,然后须要提供接口,如返回排序后的结果。


数据另一个特点就是“唯一性,可重用”,尽管在各个界面的显示各有不同,但这份数据时唯一的。


比如,FriendModel在好友系统中表现为好友的各种信息详情,而在好友PK系统中又以战力的显示为主。
但这对于FriendModel这份数据来说。它是唯一的,仅仅是以不同的逻辑组织。提供不同的接口而已。


2 视图View

View负责与用户的交互,交互又分为两种:输入和输出。


2.1 输入

输入就是收集玩家的操作,比如玩家点击了一个button,或者输入了某些文字。
比如。当玩家点击了一个好友的头像,或者点击了删除好友。


就须要对这些输入进行响应,对数据做出对应的处理。

2.2 输入

输出就是将游戏中各种数据。展示出来(包含视图展示,特效,声音等),让玩家可以看清楚,看明确。
比如,上述中的FriendModel中保存的数据,输出就负责将其显示出来。
让玩家看到这个好友的性别是男或者女。而不是1或者0,或是其他什么的。


3 控制器Control

Control就是一个控制中心,关联着Model和View,假设没有了Control,Model和View就是两个全然分离的模块。
当Model改变时。Control就会将这样的改变更新到View上面显示出来。
当View接受到玩家的交互时。会对数据做出对应的处理。


比如。当Model中接受到好友请求时。Control就会控制View,弹出一个提示框,提醒“XXX想要加入你为好友”。
当你点击了接受以后,Control就会发送一条信息给后台,后台返回数据。从而改变Model。




三 组合形式

就拿上面的好友系统来说。


通常会有一个单独的场景SceneFriend,然后有FriendModel,FriendView,最后就是FriendControl。
那么MVC是怎样组织到场景中的呢?也有两种做法。
1 将FriendModel,FriendView做为FriendControl的成员变量。
2 将FriendModel。FriendControl做为FriendView的成员变量。
第一种方案比較符合MVC这样的模式的设计,讲MV作为C的成员变量,控制起来比較方便。
另外一种方案对UI的结构来说。更加适合。

由于在Scene中加入一个View,这个是比較合理的。
第一种方案。我们须要将Control的成员变量View,加入到Scene中。
两种各有优劣,看大家的取舍了。iOS採用的是第一种方法。

免责声明:文章转载自《MVC架构在游戏开发中的应用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇windows terminal+wsl+neovim配置过程杂记Ubuntu 安装使用yum--转载下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

小程序的当下和未来可能-----------引用

一、小程序历史 HTML5 于 2007 年在 W3C 立项,与 iPhone 发布同年。乔布斯曾期待 HTML5 能帮助 iPhone 打造起应用生态系统。但 HTML5 的发展速度并不如预期,虽然它成功地打破了 IE+Flash 垄断的局面,却没有达到承载优秀的移动互联网体验的地步。苹果公司在 iPhone 站稳脚跟后,紧接着发布了自己的 App S...

大型Java Web项目的架构和部署问题

一位ID是jackson1225的网友在javaeye询问了一个大型Web系统的架构和部署选型问题,希望能提高现有的基于Java的Web应用的服务能力。由于架构模式和部署调优一直是Java社区的热门话题,这个问题引发了很多热心网友的讨论,其中一些意见对其它大型Web项目也有很好的指导意义。在讨论之初jackson1225这样描述了当前的应用的架构和部署方案...

Cortex-A15架构解析:它为什么这么强(转)

今年的新手机趋势无异是全面向四核靠拢,不过同样是四核,在实际的性能上其实是千差万别。例如针对入门级主流市场的四核手机普遍采用的都是Cortex-A7以及 Cortex-A9 级别的CPU内核,这类内核性能、成本以及发热都会较低,因此在入门市场上大行其道。  而在高端智能手机中则出现了一些新的变化,除了去年就已经崭露头角的高通Krait系列架构四核外,ARM正...

MVC5+EF6 入门完整教程11--细说MVC中仓储模式的应用

大家久等了。 本篇专题主要讲述MVC中的权限方案。 权限控制是每个系统都必须解决的问题,也是园子里讨论最多的专题之一。 前面的系列文章中我们用到了 SysUser, SysRole, SysUserRole 这几个示例表。 我们以此为基础,完成RBAC (基于角色的控制) 的核心功能。 在此给出我的最佳实践,最终的效果是针对任意一个Action或Contr...

浅谈MVC架构模式

    MVC英文即Model-View-Controller,就是把一个应用分为三个层:视图层、模型层、控制层。     模型层(M)用于封装业务逻辑。     视图层(V)也叫表示层,就是与用户实现交互的界面,通常实现数据的输入和输出功能。     控制层(C)起到控制整个业务流程的作用。简单的说就是调用业务逻辑,然后把得到的数据转发给视图显示给用户。...

从更高到更好 揭秘2021阿里双11背后的技术亮点

​简介:今年,是阿里巴巴第13个双11。今年双11,阿里巴巴大促峰值的计算成本相比去年下降50%;截至11日,小蛮驴无人车在双11期间累计配送快递已超过100万件。更多的阿里自研技术投入到双11,在芯片、服务器等硬核技术攻坚的同时,技术也在推动全链路的降本增效。除了深耕自立自强的高科技,阿里还在践行“人人受益、责任担当、开放共享”的好科技,希望用技术给客户...