小眼游戏架构:UI篇:三层架构(UI管理层)

2023-10-08 09:40

本文主要是介绍小眼游戏架构:UI篇:三层架构(UI管理层),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上一篇我们说到UI集合
UI集合最主要的作用就是给UI管理提供关闭多个UI的接口。
这篇就来说说UI管理UI管理主要管理UI集合自动流程,免去了烦人的重复写法。
先看下图:
在这里插入图片描述
流程:加载、打开、关闭、卸载(关闭之后是否需要卸载)

UI分类(分析篇的时候说过):

  1. 主UI1:每个UI集合有且只有一个。会进入自动的关闭打开流程:比如你打开一个UI集合会自动关闭上一个UI集合,你关闭当前UI集合会自动打开上次关闭的UI集合。这时的主UI1的生命周期就是UI集合的生命周期;
  2. 主UI2:每个UI集合有且只有一个。不会进入自动的关闭打开流程,有一些系统UI,你不想它能自动的打开和关闭。比如:提示信息框,断线重连框等等;
  3. 子UI:会加入到当前显示的有主UI1UI集合中。有一个非常特殊的情况就是:有些UI比如来源,任何界面都会打开,所以这个UI可能会是任何界面的子UI。比如:UIA界面打开了来源来源将是UIA子页面;这时又打开了UIB界面UIA界面来源都被关闭,然后你又打开了来源,这时来源将是UIB子页面;这时你又打开了UIC界面UIB界面来源都被关闭了。这个时候如果你按照打开的路径返回的的话,来源会被打开几次?答案是两次:关闭UICUIB会被自动打开同时会打开来源(一次),关闭UIB界面来源也会被关闭,然后自动打开UIA界面同时来源也会被打开(二次);
代码解释如下

打开时:
在这里插入图片描述
打开时如果打开的是一个子UI,那么会直接把他加入到当前最后一个有UI1类型UI集合中去,关闭这个UI集合的时候也会关闭现在加入的UI,为什么要这么做?因为我们页面拆分之前,本来就是一个UI,后面拆分了,但是生命周期肯定还是一样的,所以得保持一致。
关闭时:
在这里插入图片描述
关闭UI时如果是一个主UI那么直接关闭这个UI集合,也就是关闭UI集合里面的所有UI,
如果是一个子UI,就只是单独关闭这个子UI就行了。

UI架构完结散花,后续会有具体的一些案例和优化。

后续会有一些UI方面其他的主题:

  1. 特殊UI系统:新手引导,AVG等等。
  2. 特殊功能:UI组件化,来源功能等等。
  3. 优化:针对一些顽固的系统,比如背包。
Lua的代码环境

因为后面的章节是具体的实现,所以先把环境建立起来:
在这里插入图片描述
上图说明:我们将lua脚本从LuaFrameWork里面抽取出来,这样我们后期如果不在使用LuaFrameWork的话,改用其他框架,也不会产生很大的影响。
在这里插入图片描述
上图说明:目前的Lua代码的组织划分,后期会根据项目慢慢调整。
在这里插入图片描述
根节点信息的初始化,也就是UI的环境必须在游戏开始就完成。
环境的配置完成!

项目地址:https://github.com/xiaoyanxiansheng/SmallEyeGame

这篇关于小眼游戏架构:UI篇:三层架构(UI管理层)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/164392

相关文章

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用

element-ui下拉输入框+resetFields无法回显的问题解决

《element-ui下拉输入框+resetFields无法回显的问题解决》本文主要介绍了在使用ElementUI的下拉输入框时,点击重置按钮后输入框无法回显数据的问题,具有一定的参考价值,感兴趣的... 目录描述原因问题重现解决方案方法一方法二总结描述第一次进入页面,不做任何操作,点击重置按钮,再进行下

Python开发围棋游戏的实例代码(实现全部功能)

《Python开发围棋游戏的实例代码(实现全部功能)》围棋是一种古老而复杂的策略棋类游戏,起源于中国,已有超过2500年的历史,本文介绍了如何用Python开发一个简单的围棋游戏,实例代码涵盖了游戏的... 目录1. 围棋游戏概述1.1 游戏规则1.2 游戏设计思路2. 环境准备3. 创建棋盘3.1 棋盘类

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

国产游戏崛起:技术革新与文化自信的双重推动

近年来,国产游戏行业发展迅猛,技术水平和作品质量均得到了显著提升。特别是以《黑神话:悟空》为代表的一系列优秀作品,成功打破了过去中国游戏市场以手游和网游为主的局限,向全球玩家展示了中国在单机游戏领域的实力与潜力。随着中国开发者在画面渲染、物理引擎、AI 技术和服务器架构等方面取得了显著进展,国产游戏正逐步赢得国际市场的认可。然而,面对全球游戏行业的激烈竞争,国产游戏技术依然面临诸多挑战,未来的

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

利用命令模式构建高效的手游后端架构

在现代手游开发中,后端架构的设计对于支持高并发、快速迭代和复杂游戏逻辑至关重要。命令模式作为一种行为设计模式,可以有效地解耦请求的发起者与接收者,提升系统的可维护性和扩展性。本文将深入探讨如何利用命令模式构建一个强大且灵活的手游后端架构。 1. 命令模式的概念与优势 命令模式通过将请求封装为对象,使得请求的发起者和接收者之间的耦合度降低。这种模式的主要优势包括: 解耦请求发起者与处理者

火柴游戏java版

代码 /*** 火柴游戏* <p>* <li>有24根火柴</li>* <li>组成 A + B = C 等式</li>* <li>总共有多少种适合方式?</li>* <br>* <h>分析:</h>* <li>除去"+"、"="四根,最多可用火柴根数20根。</li>* <li>全部用两根组合成"1",最大数值为1111。使用枚举法,A和B范围在0~1111,C为A+B。判断</li>** @