广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >详解CocosCreator MVC架构
  • 868
分享到

详解CocosCreator MVC架构

2024-04-02 19:04:59 868人浏览 八月长安
摘要

概述 这一篇将介绍在游戏客户端常用的架构mvc架构。一个游戏的MVC如下划分: M:1)单例全局的数据中心World,所有游戏模块的数据在World中有入口,2)各个模块自己的数据结

概述

这一篇将介绍在游戏客户端常用的架构mvc架构。一个游戏的MVC如下划分:

M:1)单例全局的数据中心World,所有游戏模块的数据在World中有入口,2)各个模块自己的数据结构

V:1)通过creator预制体制作的UI界面、场景,2)各个界面显示逻辑的ViewCtrl

C:1)全局的MainCtrl,2)各个模块的业务逻辑类ModuleCtrl

具体模块

先介绍M部分。由于一个模块的数据,在其他模块也有访问的需求,例如好友模块,在聊天的时候也需要访问,在排行榜里需要访问。数据应该有一个单例全局的数据中心类World,所有游戏模块的数据类在World中有入口。这些数据可以在玩家登录后从服务器获取并设置。


export class World {
    private static instance: World = null;
 
    private _test: TestData = null;
 
    
    private constructor() {
 
    }
 
    
    public static get inst(): World {
        if (!World.instance) {
            World.instance = new World();
        }
 
        return World.instance;
    }
 
    // FOR TEST
    public set test(val: TestData) {
        this._test = val;
    }
 
    public get test(): TestData {
        return this._test;
    }
}

这样模块间可以独立设计自己的数据结构,通过发送消息请求对应模块的ModuleCtrl更改,通过World读取。


export class TestData {
    private _text: string = null;
 
    public constructor() {
 
    }
 
    public set text(val: string) {
        this._text = val;
    }
 
    public get text(): string {
        return this._text;
    }
}

数据的更新时可以派发消息,界面可以监听消息做刷新。

下面介绍界面和脚本代码的关联。前面篇章中介绍过,cocos creator是基于组件模式。我将每个ui界面都做成一个预制体,每个预制体都可以添加一个脚本组件,用于控制这个界面的显示逻辑。

在弹窗管理里提到我设计了一个继承cc.Component的类叫ViewCtrl,所有界面的显示逻辑类都继承ViewCtrl,并添加到对应的界面预制体。前面提到数据更新时会派发消息,ViewCtrl监听数据更新消息,刷新关联的界面。


const {ccclass, property} = cc._decorator;
 
@ccclass
export default class TestViewCtrl extends ViewCtrl {
}

ViewCtrl只处理界面的显示逻辑,不处理数据业务逻辑,模块的数据业务逻辑由该模块的ModuleCtrl处理。ViewCtrl响应用户操作,派发消息,ModuleCtrl监听消息处理。大部分模块的ModuleCtrl主要做网络通信,和对本模块缓存数据的修改。


export class TestCtrl {
 
    public constructor() {
 
    }
 
    public init(): void {}
 
    public start(): void {
        NotifyCenter.addListener(MSG_TEST_Http, (src: any, data: any) => {
            this.testHttp();
        }, this);
    }
 
    public testHttp(): void {
        let data = {
            mod: 1, // 模块
            cmd: 1, // 命令
        }
 
        let params: HttpReq = {
            path: "",
            method: HTTP_METHOD_GET
        }
 
        MainCtrl.inst.http.sendData(data, params, (data: NetData) => {
            World.inst.test = new TestData();
            World.inst.test.text = "123";
        }, (code: number, reason: string) => {});
    }
}

前面提到,C层还有一个全局单例的MainCtrl。该类主要负责模块注册、提供全局的操作接口(例如界面/场景的显隐)、网络通信处理。

以上就是详解CocosCreator MVC架构的详细内容,更多关于CocosCreator MVC架构的资料请关注编程网其它相关文章!

--结束END--

本文标题: 详解CocosCreator MVC架构

本文链接: https://www.lsjlt.com/news/123703.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 详解CocosCreator MVC架构
    概述 这一篇将介绍在游戏客户端常用的架构MVC架构。一个游戏的MVC如下划分: M:1)单例全局的数据中心World,所有游戏模块的数据在World中有入口,2)各个模块自己的数据结...
    99+
    2022-11-12
  • 详解CocosCreator项目结构机制
    目录 一、项目文件夹结构1.资源文件夹(assets)2.资源库(library)3.本地设置(local)4.扩展插件文件夹(packages)5.项目设置(settin...
    99+
    2022-11-12
  • MVC框架知识详解
    ✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 Ὁ...
    99+
    2023-09-17
    mvc java servlet
  • MVC三层架构
    一、MVC和三层架构 什么是MVC? (1)     MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计模式。 (2)    ...
    99+
    2017-08-12
    MVC三层架构
  • 详解CocosCreator优化之DrawCall
    目录前言什么是 DrawCallDrawCall 是如何影响性能的呢?如何减少 DrawCall针对图片资源针对 Label必经之路–调整UI层级顺序总结前言 在游戏开发中,Draw...
    99+
    2022-11-12
  • Facebook移动架构:Android Flux架构详解
      要为Android应用找到一个好的架构不是一件容易的事情。谷歌似乎不太在乎这个事情,因此在设计模式上,除了Activity 生命周期管理之外,再也没有官方的推荐。  ...
    99+
    2022-06-06
    flux Android 架构
  • 深入解读MVC模式和三层架构
    MVC模式 MVC 是一种分层开发的模式,其中: M:Model,业务模型,处理业务V:View,视图,界面展示C:Controller,控制器,处理请求,调用模型和视图 控制器(...
    99+
    2023-05-18
    spring MVC MVC模式 三层架构
  • MVC模式与三层架构
    目录1. 前言2. MVC模式3. 三层架构4. MVC和三层架构5. 总结5.1 IDEA 小技巧1. 前言 前面我们探讨了 JSP 的使用,随着计算机技术的不断更新迭代,JSP ...
    99+
    2023-03-21
    MVC模式 三层架构结构和作用
  • golang怎么实现MVC架构
    本篇内容介绍了“golang怎么实现MVC架构”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、前言随着互联网的发展,Web应用程序逐渐成为...
    99+
    2023-07-05
  • java开发MVC三层架构上再加一层Manager层原理详解
    目录MVC三层架构MVC架构弊端Manager层的特征Manager层使用案例MVC三层架构 我们在刚刚成为程序员的时候,就会被前辈们 “教育” 说系统的设计要遵循 MVC(Mode...
    99+
    2022-11-12
  • 详解CocosCreator制作射击游戏
    目录场景布置游戏资源炮塔旋转动态生成子弹碰撞计算增加效果靶子移动增加弹药库的显示Common公共类ResultDialog脚本(控制分数提示框)Common脚本游戏重开更改Commo...
    99+
    2022-11-12
  • 详解CocosCreator消息分发机制
    概述 本篇开始介绍游戏业务架构相关的内容。在游戏业务层,所有需要隔离的系统和模块间通信都可以通过消息分发解耦。例如网络返回通知、数据更新同步到界面等。 消息分发基于观察者模式设计。需...
    99+
    2022-11-12
  • memcache 主从架构 详解
    repcached是日本人开发的实现memcached复制功能,它是一个单 master单 slave的方案,但它的 master/slave都是可读写的,而且可以相互同步,如果 master坏掉, sla...
    99+
    2022-10-18
  • c#中winform mvc架构怎么用
    在C#中使用WinForms和MVC架构,可以按照以下步骤进行操作:1. 创建一个WinForms项目。2. 添加一个控制器类(Co...
    99+
    2023-10-09
    c#
  • 详解CocosCreator游戏之鱼群算法
    前言 最近想学一下CocosCreator,于是,编辑器下载,启动。 众所周知,边写边学才是最快的学习方法,得写个Demo练练手,那么写什么呢?听说现在《墨虾探蝌》挺火的,那就抄(学...
    99+
    2022-11-12
  • 详解CocosCreator华容道数字拼盘
    目录前言正文1.面板2.华容道求解3.代码4.注意前言 华容道是啥玩意? 这种数字拼图游戏大家都玩过吧,他就是典型的华容道之一。 华容道是古老的中国民间益智游戏,以其变化多端、百玩...
    99+
    2022-11-12
  • Spring MVC详解
    文章目录 一、SpringMVC1.1 引言1.2 MVC架构1.2.1 概念1.2.2 好处 二、开发流程2.1 导入依赖2.2 配置核心(前端)控制器2.3 后端控制器2.4 配置文件2.5 访问 三、...
    99+
    2023-08-30
    spring mvc java
  • SpringCloud 微服务架构详解
    SpringCloud 微服务学习(一) SpringCloud Alibaba1.1、单体 分布式 集群1.2、系统架构的演变1.2.1、单体应用架构1.2.2、垂直应用架构1.2.3、分层架构1.2.4、SOA架构1.2.5、微...
    99+
    2023-08-16
    java 分布式
  • 详解React Fiber架构原理
    目录一、概述二、Fiber架构2.1 执行单元2.2 数据结构2.3 Fiber链表结构2.4 Fiber节点2.5 API2.5.1 requestAnimationFrame2....
    99+
    2022-11-13
    React Fiber原理 React Fiber架构
  • Spring Boot构建框架详解
    什么Spring Boot?Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,...
    99+
    2023-05-30
    spring boot 框架
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作