当前位置: 首页 > news >正文

lua 游戏架构 之 SceneLoad场景加载(一)

设计一个为`BaseSceneLoad` class,用于处理场景加载的相关操作 ,主要作用是提供了一个通用的场景加载框架,使得子类可以按照统一的接口进行场景加载操作。子类需要实现这些方法,以便在加载场景时能够正确地处理场景加载的各个阶段。

以下是对这些方法的解释:

1. `initialize()`:在加载场景之前进行初始化操作。
2. `startLoadingScene(curScene)`:开始加载场景。`curScene`是当前场景的引用,子类可以利用这个参数进行场景加载操作。
3. `disposeLoadingScene()`:在加载场景完成后进行清理操作。
4. `isLoadingSceneReady()`:判断场景加载是否完成。返回一个布尔值,表示场景是否已经加载完成。
5. `getLoadingSceneProgress()`:获取场景加载的进度。返回一个数字,表示场景加载的进度百分比。
6. `startPreLoadNewScene(curscene)`:开始预加载下一个场景。`curscene`是当前场景的引用,子类可以利用这个参数进行场景预加载操作。
7. `getScenePrefab()`:获取下一个场景的预设。
8. `isNewSceneLoadReady()`:判断新场景加载是否完成。返回一个布尔值,表示新场景是否已经加载完成。
9. `getNewSceneLoadProgress()`:获取新场景加载的进度。返回一个数字,表示新场景加载的进度百分比。
10. `onLoadingPanelOpen()`:加载面板打开时的回调函数。
11. `onSceneEnterForeground()`:场景进入前台的回调函数。
12. `dispose()`:释放资源。
13. `destoryPreDispose()`:在完全释放之前进行处理。
14. `destoryDispose()`:完全释放资源。

代码如下:

---@class BaseSceneLoad
local BaseSceneLoad = class("BaseSceneLoad")function BaseSceneLoad:initialize()
endfunction BaseSceneLoad:startLoadingScene(curScene)assert(false, "警告子类未实现")
endfunction BaseSceneLoad:disposeLoadingScene()assert(false, "警告子类未实现")
end
---@return boolean
function BaseSceneLoad:isLoadingSceneReady()assert(false, "警告子类未实现")
end
---@return number
function BaseSceneLoad:getLoadingSceneProgress()assert(false, "警告子类未实现")
endfunction BaseSceneLoad:startPreLoadNewScene(curscene)assert(false, "警告子类未实现")
endfunction BaseSceneLoad:getScenePrefab()assert(false, "警告子类未实现")
end
---@return boolean
function BaseSceneLoad:isNewSceneLoadReady()assert(false, "警告子类未实现")
end
---@return number
function BaseSceneLoad:getNewSceneLoadProgress()assert(false, "警告子类未实现")
endfunction BaseSceneLoad:onLoadingPanelOpen()assert(false, "警告子类未实现")
endfunction BaseSceneLoad:onSceneEnterForeground()assert(false, "之类未实现")
endfunction BaseSceneLoad:dispose()assert(false, "警告子类未实现")
end-- 完全释放前处理
function BaseSceneLoad:destoryPreDispose()assert(false, "警告子类未实现")
end-- 完全释放
function BaseSceneLoad:destoryDispose()assert(false, "警告子类未实现")
endreturn BaseSceneLoad

http://www.lryc.cn/news/406719.html

相关文章:

  • 【linux深入剖析】命名管道 | 匿名管道与命名管道的区别 | system V共享内存
  • Vite 常用插件配置:自动导入+自动注册组件+动态创建图标+设置组件名
  • (leetcode学习)236. 二叉树的最近公共祖先
  • Zabbix监控系统:zabbix服务部署+基于Proxy分布式部署+zabbix主动与被动监控模式
  • 【Vue实战教程】之 Vue Router 路由详解
  • 测试用例接口开发实战
  • C#中压缩文件夹,及其内容
  • 机器学习 | 回归算法原理——多项式回归
  • 力扣224【基本计算器】
  • 【Linux】HTTP 协议
  • @Builder注释导致@RequestBody的前端json反序列化失败,HTTP400
  • 网络学习|如何理解服务的端口号
  • 《0基础》学习Python——第十八讲__爬虫/<1>
  • NFTScan 浏览器现已支持 .mint 域名搜索功能!
  • Git基本原理讲解、常见命令、Git版本回退、Git抛弃本地分支拉取仓库最新分支
  • 前端网页打开PC端本地的应用程序实现方案
  • 遇到not allow unquoted fieldName怎么办
  • IDEA安装并使用通义灵码
  • <数据集>AffectNet表情识别数据集<目标检测>
  • ThinkPHP对接易联云打印
  • JavaScript轮播图
  • 修复SteamUI.dll加载失败的指南,快速修复failed to load steamui.dll
  • PCL Local Surface Patches 关键点提取
  • Vue与ASP.NET Core Web Api设置localhost与本地ip地址皆可访问
  • Android 线程池的面试题 线程线程池面试题
  • Flink时间和窗口
  • LLaMA模型量化方法优化:提高性能与减小模型大小
  • 前端CSS实现卡片抽奖效果
  • Java在for循环中修改集合
  • Java小白入门到实战应用教程-运算符详解