Objective c 关于使用精灵文件逐帧设置动画

Objective c 关于使用精灵文件逐帧设置动画,objective-c,cocos2d-iphone,Objective C,Cocos2d Iphone,我曾经通过迭代30个图像文件(相当大的文件)来设置CCSprite的动画,在每个文件上,我将CCSprite的纹理更改为该图像文件 有人告诉我,这是没有效率的,我应该用精灵表代替。但是,我能问一下,为什么这样做效率不高呢?这个问题有两个部分: 内存。 OpenGL ES要求纹理的宽度和高度达到2倍,如64x128、256x1024、512x512等。如果图像不符合要求,Cocos2D将通过添加额外的透明空间自动调整图像大小以适应尺寸。随着连续图像的加载,您不断地浪费越来越多的空间。通过使用spr

我曾经通过迭代30个图像文件(相当大的文件)来设置CCSprite的动画,在每个文件上,我将CCSprite的纹理更改为该图像文件


有人告诉我,这是没有效率的,我应该用精灵表代替。但是,我能问一下,为什么这样做效率不高呢?

这个问题有两个部分:

  • 内存。 OpenGL ES要求纹理的宽度和高度达到2倍,如64x128、256x1024、512x512等。如果图像不符合要求,Cocos2D将通过添加额外的透明空间自动调整图像大小以适应尺寸。随着连续图像的加载,您不断地浪费越来越多的空间。通过使用sprite表,您已经将所有图像紧密地打包在一起,以减少浪费

  • 速度。与上述内容相关,加载图像并调整其大小需要时间。只需调用“load”一次,就可以加快整个过程


  • 需要注意的是,大多数iOS设备(以及所有目前正在销售的设备)确实支持OpenGL ES 1.1和2.0中的非增强型两种纹理。