我正在构建一个包含20个级别的游戏,并且有大约15个音乐文件。目前我在游戏开始时使用cocos denshion预加载所有15个声音。然而,游戏在几个级别后崩溃。我得到一个'程序接收信号:“0”。数据格式化程序暂时不可用'错误。我认为这是因为缺乏运行游戏的内存。
这是否由于声音文件的预加载而发生?什么是好习惯?在每个级别使用它之前预先加载声音会更好吗?
非常感谢您的建议。
由于 AC
答案 0 :(得分:0)
它取决于文件的大小(以及它们如何存储在内存中)以及任何其他缓冲区。在任何给定的时间你可能只需要一些东西 - 你能加载一些你需要的特定级别,然后在级别结束时卸载它们吗?
更好:AudioToolbox.framework还具有增量读取文件以进行播放的例程。如果内存非常稀缺,你可以从磁盘读取实时(缓冲)。再次,它取决于声音文件在加载时消耗的内存量以及您如何使用它们(例如它们可能很短并且循环 - 信息不在说明中)。
答案 1 :(得分:0)
运行仪器以了解正在使用多少内存,您应该能够判断这是否是问题,然后在那里一次测试一个或两个负载方法。您也可以在收到内存警告时卸载声音。