动画和内存

角色又很多动画,所以我全部压到cache里面结果内存不足了如何做得只加载需要得frame而程序不会卡

尝试换用骨骼动画吧,而不是你现在所用的帧动画的形式

— Begin quote from ____

andyque 发表于 2012-4-24 19:18 url

尝试换用骨骼动画吧,而不是你现在所用的帧动画的形式

— End quote

这个东西工具还没出来的哇。。。他们地铁总动员的公司自己做了个。。。哎难搞

— Begin quote from ____

老G 发表于 2012-4-24 19:19 url

骨骼动画?那不是3D的玩意吗?

— End quote

2d的有。。

— Begin quote from ____

andyque 发表于 2012-4-24 19:18 url

尝试换用骨骼动画吧,而不是你现在所用的帧动画的形式

— End quote

现在用的texturrpacker,然后用CCSpriteFrameCache。读后,用的CCAnimationCache缓冲动画,常规的做法,但是动画太多了,今下午加了个技能的动画程序就被内存不足直接推出了。。。

— Begin quote from ____

老G 发表于 2012-4-24 19:19 url

骨骼动画?那不是3D的玩意吗?

— End quote

大哥有木有高级的点的办法。。。

1>整理贴图,提高重用
2>在内存里面重建frame的图片,也就是使用虚拟的贴图,这样子就和物理的贴图无关了
3>修改整个sprite实现

不用的动画释放掉就没事了,。。有一些removeXXXX的方法

— Begin quote from ____

zhangbk 发表于 2012-4-24 21:34 url

不用的动画释放掉就没事了,。。有一些removeXXXX的方法

— End quote

但是那些动画都是随时都在用的。。

所有图片加起来只有6m,用instruments检查居然用hd图用了176m得内存肿么破,头部动画12套,每套3张,身体一样那么多,如果用bathnode,这些动画又没法放到一个textrue里面,

把图片都尽量塞在一张图里面

— Begin quote from ____

jenco 发表于 2012-4-25 10:57 url

把图片都尽量塞在一张图里面

— End quote

最后每个动画图针都是单独图片。。。然后需要的时候载入,不要了删除了,降到了30m左右,模拟器上不卡,真机上还没测。。。。。。。。。。。。

真机也不卡oh yeah

— Begin quote from ____

kineting 发表于 2012-4-26 14:19 url

最后每个动画图针都是单独图片。。。然后需要的时候载入,不要了删除了,降到了30m左右,模拟器上不卡, …

— End quote

一张图只加载一次~比不断加载删除好吧~
只是建议~详细我也不知道你的游戏是怎样设计的~技术迎合设计就好

— Begin quote from ____

jenco 发表于 2012-4-27 09:49 url

一张图只加载一次~比不断加载删除好吧~
只是建议~详细我也不知道你的游戏是怎样设计的~技术迎合设计就好 …

— End quote

图太多了。全部加载进去还没动程序就挂了

1、能裁剪掉的帧数就裁剪掉
2、一些效果用程序的方式实现,如技能特效什么用粒子效果做只需要很少的纹理而已
3、减少图片分辨率~~

— Begin quote from ____

342659057 发表于 2012-5-2 14:29 url

LZ 我也是刚刚碰到这个问题,在添加PList的过程中,附加的大量内存主要是来自于 图片 在cocos下 512 *512的 …

— End quote

降色应该不管用。。。颜色都是用那么朵表示得

— Begin quote from ____

342659057 发表于 2012-5-2 14:30 url

还有个附带的小建议哈 图片的大小是按 2的N次方算的,所以就还要注意下 图片的大小哈 …

— End quote

前面得说过

楼主的这种情况不是绛色能解决的,降色只是减少你的图片文件的大小,程序占用内存就是根据你图片尺寸来计算的,我建议你的程序做到以下几点,应该会对你大有帮助

1、尽量把2^n尺寸的图填满,减少内存的浪费
2、同一张图片不要重复加载,减轻内存的负荷
3、暂时不使用的图片一定要释放,什么时候用,什么时候再加载。
4、使用拼图的方式,把具有相同部分的图片拼接在一起,比如人物的头可以共用在多个动画帧的时候,就使用一个头,而不要头和身子放一起。

ps:这里做个小广告,国内知名动画编辑器SpriteX2011版对cocos2d进行了支持,我之前使用java开发的时候就一直在用这个工具,那个时候他的版本是3.9,还是免费的。
spx的最大的好处,就是可以把重复利用的动画帧进行切片整理,重新导出一张切片的碎图,并且进行动画帧的管理。
目前的版本是2011,已经是收费版本了,我买了一个,感觉还不错。

用逐帧动画,播放完之后,怎么清texture呢?