AndEngine游戏优化

2024-01-21

我在我的游戏中使用 java + AndEngine。

在游戏过程中我遇到了一些卡顿,我查找了信息并找到了一些如何优化游戏性能的步骤:

  1. 避免GC(垃圾收集器) 在游戏的主要动作中调用:
    a) 游戏时不要创建物体;
    b) 不要创建不必要的对象;
  2. 优化重复次数较多的代码 经常

我遵循了这些步骤,但在游戏过程中我还是遇到了一些冻结。

现在我在游戏开始之前创建并加载所有纹理并且不卸载它们,这是一个坏主意吗?如何优化游戏流程? 也许我必须在主要活动之前释放所有可能的内存,然后在每个级别之后重新加载它们?


  1. 减小纹理尺寸。
  2. 减少纹理切换(也称为尝试使用 spritesheet,以便尽可能少地更改纹理)
  3. 使用较低质量的纹理(RGBA4444 或 RGB565 而不是 RGBA8888)。
  4. 在实体不需要更新的情况下调用 setIgnoreUpdate。
  5. 如果可能的话使用 SpriteBatches http://www.andengine.org/forums/updates/spritebatch-2x-performance-improvement-anyone-t3613-10.html.

供参考: AndEngine 的下一版本(将于 12 月中旬发布)支持 GLES2,因此您有更多的可能性通过自定义着色器和实体来提高性能。

它还将在 GL 线程的第一帧上执行启动管道 (onLoadEngine/onLoadResources/onLoadScene/onLoadComplete),而不是在 UI 线程上阻塞(直接在 onCreate 中)。

它还允许您轻松地将管道的各个阶段卸载到线程中,而不会破坏整个管道。将有一个非常简单的 BaseGameActivity 子类的实现,它在执行管道的各个阶段时显示确定的 ProgressDialog。实体在附加到场景时会弹出。

一般来说,这意味着实际加载时间减少,更重要的是,毛毡加载时间显着减少!创建加载屏幕非常简单,与之前的痛苦相反。

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

AndEngine游戏优化 的相关文章

随机推荐

  • 当传递到 ASP.NET Core 2.2 中的 [FromForm] 使用的模型时,GUID 列表为空

    EDIT 问题在于招摇 请参阅我自己的解决方法的答案 我目前在使用 HTTP POST 和将 GUID 列表传递给控制器 操作时遇到一些问题 FromForm 指南列表是空的 如果我尝试将其转换为字符串列表 则列表中只会显示 1 个值 而不
  • 导入自定义 npm 包会导致空/空对象

    我可以在同一个包中导入 MyComponent 并将其呈现在页面上 但无法链接或下载 MyComponent 包并导入该组件 包 json name my component version 1 0 0 main dist index js
  • 图像的 Blob URL

    我怎样才能 保存 这个图像 blob https 3A theta360 com 473c6400 b8e7 4c41 8f7a 90f03cbc8787 发现于 https theta360 com s lE2in9qQDK6j2CcjP
  • Java 语言规范 - 无法理解“BlockStatement”

    我一直在研究 Java 语言规范here http java sun com docs books jls second edition html syntax doc html 相反 我应该出去喝杯啤酒 并且我很好奇一个方法可以包含什么
  • 在 Qt、QtCreator 和 QMake 中配置 GCC 编译器开关

    我最近尝试使用Qt创建者 http en wikipedia org wiki Qt CreatorWindows 7 64 位 上的 1 3 2 Qt 4 6 2 和 GCC 4 4 0 32 位版本 使用一些实验性 C 0x 扩展来编译
  • 如何在heroku上部署夹层?

    我创建了一个夹层项目 其名称为 mezzanine heroku test 我创建了一个 Procfile 其内容如下 网络 python manage py run gunicorn b 0 0 0 0 PORT w 3 接下来 我访问网
  • JPQL 中的 LEFT JOIN ON()

    我有两个实体 User id long name String Player id long owner User 点 int 现在我想在一个 JPQL 查询中选择一个用户及其关联的玩家 在 SQL 中我会这样做 SELECT u p FR
  • 在使用 R 进行 PCA 分析之前省略 NA 和数据插补

    我正在尝试使用进行 PCA 分析princompR 中的函数 下面是示例代码 mydf lt data frame A c NA rnorm 10 4 5 B c NA rnorm 9 4 5 NA C c NA NA rnorm 8 4
  • Pyspark 根据另一个数据帧替换数组列上的值

    我有两个数据框 一个仅包含一些独特的数据框ids与相关的names像这样 Id name 0 name a 1 name b 2 name c 第二个数据帧包含存储在数组中的第一个数据帧的 id 每行 Row 1 row 2 0 0 2 1
  • Canvas绘制速度非常慢

    我想显示带有标记的比例尺 效果很好 最重要的是 我还想用红色指示器在刻度中显示鼠标位置 因此 我在运行应用程序时绘制画布 然后在更改鼠标位置时重新绘制整个画布 我是画布新手 不明白我的代码有什么问题 我一直在尝试解决它但没有运气 问题可能出
  • SwiftUI 可选环境对象

    我在用着 EnvironmentObject像这样 struct MyView View EnvironmentObject var object MyObject 但我的代码不需要有值object 仅将其设为可选是行不通的 甚至无法编译
  • 使用 RankNTypes 和 TypeFamilies 的非法多态或限定类型

    我一直在慢慢地致力于移植llvm https github com alphaHeavy llvm包使用数据类型 类型族和类型 nats 并在尝试删除用于对值进行分类的两种新类型时遇到了一个小问题 ConstValue and Value
  • 进程的开始时间

    如何使用 C 代码检索进程的启动时间 如果可能的话 我还想知道如何使用 Widows 内置的功能来做到这一点 public DateTime GetProcessStartTime string processName Process p
  • 在数据库表中存储整数或字符串之间的区别

    我关心性能 工程和可读性 假设我有一个博客 每个帖子都有其状态 已发布 4 待审核 2 草稿 1 建议将这些信息存储在什么位置status column status lt storing status as string pending
  • URI 模板可以用于将 URI 与路由匹配吗?

    ASP NET 或 Nancy 等框架提供了可用于指定路由的语法 例如 MapRoute customers id invoices invoiceId 在 ASP NET 中 路由有两个方向 他们能match请求 URI 例如 custo
  • Spring 的 AspectJ 模式缓存与 AspectJ 模式事务

    我的问题与 Spring 的 AspectJ 模式有关 特别是如何启用它 交易管理 Caching 1 我注意到 为了启用AspectJ模式进行事务管理 我只需要执行以下操作 Configuration EnableTransactionM
  • Spring JPA 存储库忽略 FetchType.LAZY

    我有我的实体类OneToMany定义的映射和通过扩展创建的 Spring JPA 存储库接口JpaRepository弹簧接口 我已将 fetch 设置为FetchType LAZY明确地在关联OneToMany注解 我面临的问题是 当我使
  • 如何在 IAuthenticationFilter 实现中设置 WWW-Authentication 标头?

    我正在使用 MVC5 的 IAuthenticationFilter 接口实现基本身份验证 我的理解是 这是现在的首选方法 而不是使用 DelegatingHandler 我已经让它工作了 但是 www authenticate 标头没有在
  • 在 collectionView Swift 中加载数据时显示活动指示器

    当我的 collectionView 中的数据加载时 我将如何显示活动指示器和白色背景 我目前有这个 let activityView UIActivityIndicatorView activityIndicatorStyle white
  • AndEngine游戏优化

    我在我的游戏中使用 java AndEngine 在游戏过程中我遇到了一些卡顿 我查找了信息并找到了一些如何优化游戏性能的步骤 避免GC 垃圾收集器 在游戏的主要动作中调用 a 游戏时不要创建物体 b 不要创建不必要的对象 优化重复次数较多