LibGDX dispose() 方法应该如何使用?

2024-05-07

我很不清楚如何dispose()LibGDX 框架中的方法有效并且应该使用。据我所知,当你不需要某种资源后,你必须进行处置以确保你的程序运行最佳。

我正在开发一个移动应用程序,并且我有一个AssetManager在启动时在特殊指定的加载屏幕中加载所有必需的资源。问题是我不知道何时或是否应该卸载或处置它们。

当我开始开发应用程序时,我没有让管理器在开始时加载所有资源,并且程序花费了太长时间来加载一个应用程序的所有资源。Screen每次被访问时。


你可以看到dispose()LibGDX API 的一些类/接口中的方法

  • dispose()的方法ApplicationListener接口,当然还有他实现的类内部ApplicationAdapter, Game

    dispose()的方法ApplicationListener是生命周期方法,在应用程序被销毁时调用。您在其中创建的任何一次性资源create()方法应该在这个方法中被销毁。

  • dispose()的方法Screen接口和他的适配器类ScreenAdapter

    如果您想要一些特定的资源Screen然后在中创建该资源show()方法并在此销毁dispose()方法,但屏幕的dispose()不被调用ApplicationListener生命周期方法,所以你需要自己调用。我更喜欢打电话dispose()方法通过hide()Screen 接口的方法。

  • dispose()许多类的方法(例如SpriteBatch, Stage, AssetManager还有更多..)LibGDX API。

    In 1st and 2nd points I use a term disposable resource. How I know which is disposable object. In libGDX there is Interface Disposable, LibGDX classes use this interface to release resources obtained by some object.

  • dispose()的方法Disposable界面

    任何实现的类Disposable接口需要处理。

这就是关于dispose() method.


  1. 如果您正在创建需要大量资源的大型游戏,那么将所有资源保留在内存中并不可取,因此您需要卸载一些不使用的资源。

    假设我们正在创建有两个游戏的游戏,其中一个是gardening一种是3 match game,两种游戏都需要大量资源,因此当我们从一个游戏转到另一个游戏时,从 AssetManager 中卸载以前的游戏资源并将新的游戏资源加载到AssetManager.

    你应该只保留一个对象AssetManager在您的应用程序中,并且必须丢弃在ApplicationListener's dispose() method.

  2. 如果您正在开发小型项目/游戏,您可以避免加载和卸载资源,创建对象AssetManager曾在create()方法,加载所需的资源并在您的游戏中使用dispose()当您退出游戏时dispose()的方法ApplicationListener.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LibGDX dispose() 方法应该如何使用? 的相关文章

随机推荐

  • Socket.IO 消息不更新 Angular 变量

    我有一个 socket io 客户端 服务器设置 并在客户端上运行 AngularJS Server js var io require socket io server io on connection function socket s
  • ggplot2:为什么半透明+ pdflatex 会导致比普通 PDF 字体更重?

    ggplot2 为什么半透明 pdflatex 会导致比普通 PDF 字体更重 我遇到了一个问题pdf 在 R 中输入 然后pdflatex ing ggplot2 图像会导致同一页面上的所有文本与图像变得粗体 但仅当alpha requi
  • 如何使用蚂蚁?

    我一直试图了解 Ant 的用途 但我仍然不明白 有人可以给我一个使用 Ant 的用例吗 我可以尝试看看 Ant 为何有用以及我可以用它做什么 我在 Eclipse 中进行 Java 开发 并且刚刚开始使用 servlet 和 Google
  • 使用 DOMDocument 进行 PHP 编码

  • mysql_upgrade 失败 - innodb 表不存在?

    我正在将 mysql 5 5 docker 容器数据库升级到 mysql 5 6 docker 容器 我能够解决所有其他问题 最后我的服务器运行的是 5 6 但是当我运行 mysql upgrade 时出现以下错误 ERROR root 1
  • Scala 和 Spark:Windows 上的 Dataframe.write._

    有人设法使用 Spark 写入文件 尤其是 CSV 吗 数据框 http spark apache org docs latest api scala index html org apache spark sql Dataset在 Win
  • java.library.path 中没有 ocijdbc12

    我正在尝试使用 OCI 驱动程序通过 java 程序连接到 oracle 以下是配置 Windows 7 32 位 JDK 1 7 Oracle 客户端 11g R2 ojdbc7 jar在我的独立应用程序的类路径中 但我收到以下异常 Ex
  • AngularJS:在任何部分页面控制器之前调用特定函数

    我想调用一个特定的函数 GetSession 在我的应用程序加载开始时 这个函数使 http调用并获取会话令牌 GlobalSessionToken从服务器 然后 该会话令牌用于其他控制器逻辑并从服务器获取数据 我已经打电话给这个GetSe
  • 无法在 Google Cloud Function 中加载 node_modules(index.js,不在项目根目录上)

    因此 我需要部署 Google Cloud Function 以在 PostgreSQL 数据库 Cloud SQL 上发出选择请求 我需要使用 pg 模块 然后使用以下命令安装它 npm i pg 你需要知道我的项目目录是这样的 proj
  • 添加到 std::vector 的中间

    有没有办法将值添加到 a 的中间vector在 C 中 假设我有 vector
  • 在react中自定义useAxios钩子

    我正在使用 axios 和 React 所以我想为此编写一个自定义钩子 我这样做了 它工作正常 如下所示 const useAxios gt const response setResponse useState const error s
  • 弹性图表隐藏数据提示

    我们从多个源获取数据 并且某个日期的数据可能存在也可能不存在 因此 对于没有数据的点 我们发送 NaN 问题 在下面的代码中 有没有办法不显示那些为空的数据提示 我添加了一个数据提示功能 但它确实显示了一个小的空方块 是否有可能甚至不显示
  • VSCode 扩展的安全性和隐私性

    我发现 VSCode 有很多不错的扩展 然而 我担心这些扩展是否将我的代码发送到他们的任何服务器 有什么办法可以查到吗 我可以使用 fiddler 并隔离插件中可能发生的调用 但不想对我安装的每个扩展都这样做 VScode 团队对此有一些指
  • VS2015 nuget包管理器找不到包

    我安装了 VS2015 Update 2 现在 nuget 包管理器找不到 Microsoft 和 net 包源之外的任何包 看起来 nuget 包源已被删除 当我将其添加回 http www nuget org http www nuge
  • 外部“C”声明如何工作?

    我正在学习编程语言课程 我们正在讨论extern C 宣言 除了 它与 C 和 C 接口 之外 此声明如何在更深层次上工作 这对程序中发生的绑定有何影响 extern C 用于确保后面的符号不是mangled http en wikiped
  • 如何测量异步发电机所花费的时间?

    我想测量生成器花费的时间 阻塞主循环的时间 假设我有以下两个生成器 async def run for i in range 5 await asyncio sleep 0 2 yield i return async def walk f
  • 预注册 ATL 窗口类

    我在一个项目中使用了 ATL 和 WTL 的组合 并从中派生了我自己的类CWindowImpl 看起来像这样 class CMyControl public CWindowImpl
  • 浮点型、双精度型和十进制最大值与大小的关系[重复]

    这个问题在这里已经有答案了 我在 C 中遇到了这些数据类型的大小和最大值的令人困惑的模式 在使用 Marshal SizeOf 比较这些大小时 我发现了以下结果 Float 4 bytes Double 8 bytes Decimal 16
  • Symfony2 -> Twig -> 表单 -> 字段 -> 设置渲染 = true

    我有一个简单的问题 我有一个带有字段的表单 例如 builder gt add x gt add y gt add z 在我的树枝文件中 我使用了多个块 并且我想停止渲染字段 我查看了 b html twig 文件 a html twig
  • LibGDX dispose() 方法应该如何使用?

    我很不清楚如何dispose LibGDX 框架中的方法有效并且应该使用 据我所知 当你不需要某种资源后 你必须进行处置以确保你的程序运行最佳 我正在开发一个移动应用程序 并且我有一个AssetManager在启动时在特殊指定的加载屏幕中加