你必须使用带有 CCSpriteFrameCache 的精灵表吗?
Posted
技术标签:
【中文标题】你必须使用带有 CCSpriteFrameCache 的精灵表吗?【英文标题】:Do you have to use a sprite sheet with CCSpriteFrameCache? 【发布时间】:2013-05-22 23:37:05 【问题描述】:查看教程和CCSpriteFrame
和CCSpriteFrameCache
文档,看起来我需要一个类似于使用TexturePacker 生成的plist。
有没有办法只将单个图像添加到缓存中?
或者用图片创建CCSpriteFrame
的方法?看起来 1.0.0 版支持它,但 2.0.0 版不支持它
谢谢!
【问题讨论】:
【参考方案1】:简而言之:是的,您可以这样做。但是您不想这样做,因为它不切实际并且浪费时间。 spriteframes 的重点是在纹理图集中定义纹理区域。否则只需使用 spriteWithFile 。但这在性能方面并不能很好地扩展。
迟早你必须开始使用纹理图集,并为此使用一个好的工具(TexturePacker 是我的最爱)。
【讨论】:
同意 TP ... 最全面、最出色的 pvr 格式和压缩效果。正如你所说,可能迟早:) 谢谢!是的,我想我会吸吮它并购买它。哈哈。反正也没那么贵。 =]【参考方案2】:如果您需要精灵表方面的帮助,可以查看tutorial
他向您展示了如何使用texture packer
并完全为熊制作动画。纹理打包器会自动为您制作 .plist。这很酷。但是,您不需要使用精灵表。我认为,您可以将图像添加到数组中,然后将数组中的图像序列作为动画播放。那个教程是here
此外,CCSpriteFrameCache 所做的只是缓存精灵帧。您可以使用 .plist 文件加载带有帧的 CCSpriteFrameCache,也可以使用 CCSpriteFrame 和精灵帧名称将其加载到其中。看看这个 cocos2d 论坛:here
祝你好运=-)
【讨论】:
是的,我查看了它并且最初正在使用它,但是我的免费试用期已经用完了,所以我想知道如果没有它我是否可以这样做。 =]【参考方案3】:您不需要纹理打包器来创建 .plist ... 如果您有胃口,vi 就可以了。但是,您可以:
CGRect myRect = CGRectMake(0, 0, 80, 40);
CCTexture2D *myTexture = [[CCTextureCache sharedTextureCache] addImage:@"myTexture.pvr.gz"];
CCSpriteFrame *fr=[CCSpriteFrame frameWithTexture:myTexture rect:myRect];
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFrame:fr name:@"myFunkyFrameName"];
编辑。未经测试,但在 2.0 中可以正常编译,应该可以工作。
【讨论】:
以上是关于你必须使用带有 CCSpriteFrameCache 的精灵表吗?的主要内容,如果未能解决你的问题,请参考以下文章
通过 aws ses 在 node.js 中发送带有附件的邮件
如果你使用 Spring security,你必须使用 taglib 吗?
ruby CarrierWave带有来自雾的备用URL,快速而肮脏。对于将生产数据提取到开发中非常有用,以防万一你必须全力以赴