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()`:完全释放资源。

代码如下:

Lua 复制代码
---@class BaseSceneLoad
local BaseSceneLoad = class("BaseSceneLoad")

function BaseSceneLoad:initialize()
end

function BaseSceneLoad:startLoadingScene(curScene)
    assert(false, "警告子类未实现")
end

function BaseSceneLoad:disposeLoadingScene()
    assert(false, "警告子类未实现")
end
---@return boolean
function BaseSceneLoad:isLoadingSceneReady()
    assert(false, "警告子类未实现")
end
---@return number
function BaseSceneLoad:getLoadingSceneProgress()
    assert(false, "警告子类未实现")
end

function BaseSceneLoad:startPreLoadNewScene(curscene)
    assert(false, "警告子类未实现")
end

function BaseSceneLoad:getScenePrefab()
    assert(false, "警告子类未实现")
end
---@return boolean
function BaseSceneLoad:isNewSceneLoadReady()
    assert(false, "警告子类未实现")
end
---@return number
function BaseSceneLoad:getNewSceneLoadProgress()
    assert(false, "警告子类未实现")
end

function BaseSceneLoad:onLoadingPanelOpen()
    assert(false, "警告子类未实现")
end

function BaseSceneLoad:onSceneEnterForeground()
    assert(false, "之类未实现")
end

function BaseSceneLoad:dispose()
    assert(false, "警告子类未实现")
end

-- 完全释放前处理
function BaseSceneLoad:destoryPreDispose()
    assert(false, "警告子类未实现")
end


-- 完全释放
function BaseSceneLoad:destoryDispose()
    assert(false, "警告子类未实现")
end

return BaseSceneLoad
相关推荐
Cosolar1 小时前
LlamaIndex 文档解析与分块策略深度解析
人工智能·面试·架构
摇滚侠2 小时前
Maven 入门+高深 单一架构案例 54-59
java·架构·maven·intellij-idea
caimouse2 小时前
Reactos 第 4 章 对象管理 — 4.5 几个常用的内核函数
c语言·windows·架构
x138702859572 小时前
c语言排雷游戏(基础版9*9)
c语言·算法·游戏
折哥的程序人生 · 物流技术专研2 小时前
Java 23 种设计模式:从踩坑到精通 | 原型模式 —— 克隆对象,深拷贝与浅拷贝的坑你踩过吗?
java·设计模式·架构·原型模式·单一职责原则
装不满的克莱因瓶3 小时前
基于 OpenResty 扩展开发实现动态服务注册与发现能力
java·开发语言·架构·openresty
caimouse3 小时前
Reactos 第 4 章 对象管理 — 4.3 句柄和句柄表(Handle & Handle Table)
c语言·windows·架构
故渊at4 小时前
第二板块:Android 四大组件标准化学理 | 第六篇:四大组件架构总论与 Manifest 规范
android·架构·zygote·manifest·四大组件
李燚4 小时前
erlang_migrate 架构拆解:behaviour 驱动的多数据库迁移引擎
数据库·postgresql·架构·erlang·migrate·behaviour·erlang_migrate
caimouse4 小时前
Windows NT 内核架构(主通用模型)流 NT 5.x/10+
windows·架构