首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >高资产装载时间

高资产装载时间
EN

Stack Overflow用户
提问于 2015-04-25 03:11:34
回答 2查看 371关注 0票数 1

我刚刚在play商店上发布了我的游戏,我的一些朋友抱怨说,在一些棒棒糖设备(nexus 4,OS5.0)中,加载时间超过1分钟(超过1000帧),.Usually需要5-10 (180帧)秒来加载所有资产,甚至是带有单核1.0 GHz处理器的设备。

我使用资产管理类加载所有资产。

问题是加载Mp3声音files.There大约有52个声音,2个音乐文件。

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2015-04-25 05:44:48

我个人从未使用过AssetsManager,但我可以使用其他各种技术来帮助您:

资产存储在Android项目的资产目录中,并在部署应用程序时自动与APK一起打包。没有其他应用程序可以访问这些文件。 文件也可以存储在内部存储器中,在那里它们是可读的和可写的。每个安装的应用程序都有一个专用的内部存储目录。此目录也只能由该应用程序访问。您可以将此存储视为应用程序的私有工作区。

对于我来说,通常的做法是创建不同的处理程序,如soundHandler、spriteHandler、animationHandler等。您可以将调用平均分离出来,并从每个类加载所需的内容。它可能有助于添加一个启动屏幕(如果您还没有),在您的运行时资产加载中加载它将是非常有用的。这将提供资产正在快速加载的“错觉”,但屏幕只是分层。

示例:

代码语言:javascript
运行
复制
    public void create () {
            batcher = new SpriteBatch();
            SettingsHandler.load();
            AssetsHandler.load();
            SoundHandler.load();
            setScreen(new MainMenuScreen(this));
    }

我也会使用纹理包装GUI创建的纹理亚特兰。您可以从.txt文件而不是图像文件加载图像。这将给您的‘地图集’上的spritesheet读取字符串永远是可取的。

地图集文件示例:

代码语言:javascript
运行
复制
gui.png
format: RGBA8888
filter: Nearest, Nearest
repeat: none
drone1
  rotate: false
  xy: 274, 2
  size: 176, 66
  orig: 176, 66
  offset: 0, 0
  index: -1
drone2
  rotate: false
  xy: 2, 91
  size: 150, 66
  orig: 150, 66
  offset: 0, 0
  index: -1

纹理Atlases的示例实现:

代码语言:javascript
运行
复制
    int droneIndex = 1;
    TextureRegion[] drones = new TextureRegion[1];
    for (int i = 0; i < drones.length; i++) 
    {
        drones[i] = gui.findRegion(("drone" + droneIndex));
    }
    droneFly = new AnimationHandler(0.2f, drones);

当从SD或资产文件夹加载时,我会重新记录跟踪LibGdx的建议。并实时操作文件,并相应地分配内存使用。这不是你所能做的。

有什么值得推荐的呢?如何缩短libgdx中所有资产的加载时间给出了一个很好的答案。创建一个启动屏幕的形式,但是对于您的主GUI来说,为了使它看起来像是已经加载了资产,但是您所要做的只是在运行时在您的资产加载上呈现一个屏幕。请强调上面给出的示例,但要使用完整的代码示例。

我也会回顾一下编码原则“干”(不要重复你自己)。这是一个伟大的原则,如果你希望充分与你所写的有关对象的分类。加载时间并不总是关于如何处理资产的问题。关键在于你如何处理你的代码。再读这里这里这里

票数 1
EN

Stack Overflow用户

发布于 2015-04-25 08:12:52

我也有同样的问题,大约有10张图片要加载(总共3MB,加载时间约8秒)。我只是通过压缩图像将总大小减少到2MB,并节省了3到4秒。此外,一旦完成,也要确保处置资产。

试一试,并测试结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29860560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档