[计算机] Laya Air游戏开发模式之传统MVC模式

查看:1124 |回复:8 | 2020-4-7 10:26:04

您需要 登录 才可以下载或查看,没有账号?注册

x
MVC.png

一、什么是MVC模式

MVC简单来说就是三个词:Model(模型)、View(视图)和Controller(控制器):

Model:是游戏中的"数据层",也就是程序需要操作的数据或信息。

View:是直接面向最终用户的"视图层"。它是提供给用户的操作界面,是程序的外壳。

Controller:就是游戏中最核心的"控制层",数据与视图之间的通信都通过Controller来控制

1.jpg

每一层几乎都是相互独立的,对外提供调用的接口,一般的我们当玩家从"视图层"做出响应,就会传递到"控制层",控制层再改变数据层,“数据层”反馈给"控制层",再发送到视图层(其实在开发中也常会用到数据驱动的方式:当"数据层"发生改变的时候,直接通过事件派送的方式反馈到视图层)

二、实例解释MVC模式

只是简单的介绍理论可能有些萌新会觉得懵逼,这里使用TypeScript语言在Laya Air游戏引擎通过"玩家升级"的小例子来简单说明:

1.首先在节点下创建"up"、"ProgressBar"节点,分别用于监听获取经验事件和显示当前经验值进度条:



2.分别创建View、Contoller、Model文件夹并创建对应的脚本组件:



3.将model脚本挂载到进度条节点上,将Controller脚本挂到场景节点下用于控制游戏的逻辑(在实际开发中会根据不同的场景、UI创建不同的ctrl):



4.给model层的脚本写上基本数值(为了方便这里以表的形式)并导出:



5.转到View层的脚本写上改变进度条的方法:



6.接下来就是最关键的Controller层的game_ctrl脚本,首先导入View层和Model层的脚本,分别获取进度条节点和"获取经验"按钮节点,按钮添加点击监听事件,当View层发生改变的时候,Controller层捕获到事件,通过计算再传回View层和Model层:




最后是显示效果:



评分

参与人数 1活跃度 +15 展开 理由
微凉. + 15 【给力】阅贴无数,楼主最强!

查看全部评分

2020-4-7 10:26:04  
 赞 赞 1

使用道具 登录

8个回答,把该问题分享到群,邀请大神一起回答。
2#
回复 收起回复
2023-3-1 12:11:37   回复
 赞 赞 1

使用道具 登录

3#
回复 收起回复
2023-8-30 09:37:21   回复
 赞 赞 0

使用道具 登录

5#
很有帮助,感谢分享!
回复 收起回复
2024-10-27 00:34:58   回复
 赞 赞 0

使用道具 登录

6#
回复 收起回复
2024-10-27 00:35:03   回复
 赞 赞 0

使用道具 登录

CG 游戏行业专业问题

图文教程技术文章技术文库程序逻辑
显示全部 8
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表