cocos2d 3.0 中的 spriteWithSpriteFrameName 等效项?
Posted
技术标签:
【中文标题】cocos2d 3.0 中的 spriteWithSpriteFrameName 等效项?【英文标题】:spriteWithSpriteFrameName equivalent in cocos2d 3.0? 【发布时间】:2014-05-02 23:58:13 【问题描述】:我正在尝试制作我的第一个 ios 游戏,我需要批量渲染背景图块。我正在使用 cocos2d 3,但我能找到的每个精灵绘图示例都使用 spriteWithSpriteFrameName
,这不再是一个选项。
我正在成功加载精灵表/plist:
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"backgrounds.plist"];
CCSpriteBatchNode spriteBatch = [CCSpriteBatchNode batchNodeWithFile:@"backgrounds.png"];
但我不知道如何正确获取 spritesheet 的特定部分。 spriteWithSpriteFrameName
不再是 CCSprite
的方法
CCSprite* tile = [CCSprite spriteWithSpriteFrameName:@"dirt.png"];
【问题讨论】:
有一个 API 参考:cocos2d-iphone.org/docs/api/Classes/CCSprite.html#//api/name/…: 但是没有等同于spriteWithSpriteFrameName: NSString
,唯一接受字符串的是图像本身。有些东西可以接受CCSpriteFrame
,但没有明确说明如何使用它。
然后查看 ccspriteframe 参考,很确定会有一个“with name”初始化器,无论是那个还是 spriteframecache(spriteframenamed 或其他东西)
【参考方案1】:
在 cocos2d v3.0 中,你必须制作一个精灵帧,而不是使用准备好的精灵帧制作 CCSprite:
CCSpriteFrame* sampleFrame = [CCSpriteFrame frameWithImageNamed:@"dirt.png" ];
CCSprite* title = [CCSprite spriteWithSpriteFrame:sampleFrame];
希望对你有帮助:)
【讨论】:
【参考方案2】:这是怎么做的:
CCSprite* spriteFile = [CCSprite spriteWithImageNamed:@"file.png"];
【讨论】:
以上是关于cocos2d 3.0 中的 spriteWithSpriteFrameName 等效项?的主要内容,如果未能解决你的问题,请参考以下文章
高屋建瓴 cocos2d-x-3.0架构设计 Cocos2d (v.3.0) rendering pipeline roadmap(原文)