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
相关推荐
roshy1 小时前
x86、arm、rsc-v指令集架构,指令集、OS、应用3者的关系
java·arm开发·架构
Hello123网站1 小时前
2000款小游戏免费下载和部署教程:h5小游戏,FC小游戏,GBA小游戏
游戏·玩游戏·游戏机
科技百宝箱2 小时前
03-AI Agent全栈架构系统化落地指南
人工智能·架构
趣味编程1113 小时前
物联网系统三层架构解析
物联网·架构
mit6.8243 小时前
[Backstage] 认证请求的流程 | JWT令牌
架构
235165 小时前
【MQ】RabbitMQ:架构、工作模式、高可用与流程解析
java·分布式·架构·kafka·rabbitmq·rocketmq·java-rabbitmq
串流游戏联盟6 小时前
《小小梦魇3》今日发售!用UU远程手机躺玩通关
游戏·远程工作
wanhengidc6 小时前
云手机长期使用会消耗很多流量吗
网络·游戏·智能手机·架构·云计算
程序猿阿伟7 小时前
《3D山地场景渲染进阶:GPU驱动架构下细节与性能平衡的6大技术实践》
3d·架构
文火冰糖的硅基工坊7 小时前
[创业之路-691]:历史与现实的镜鉴:从三国纷争到华为铁三角的系统性启示
人工智能·科技·华为·重构·架构·创业