我是cocos2d的初学者,但我在Objective-C和iphoneSdk方面有一些经验。但是我的应用程序中有一个问题,我不能找出错误是什么。
我有一个动画( CCLayer ),它向播放器显示一个小动画,然后它启动另一个CCLayer (关卡):
动漫:
-(id) init{
if( (self=[super init])) {
CCSpriteFrameCache* frameCache = [CCSpriteFrameCache sharedSpriteFrameCache];
[frameCache addSpriteFramesWithFile:@"Anime.plist"];
CCSprite * backgound = [CCSprite spriteWithSpriteFrameName:@"Back.png"];
backgound.anchorPoint=ccp(0,0);
[self addChild:backgound z:-1];
CCSprite *body = [CCSprite spriteWithSpriteFrameName:@"Body1.png"];
[self addChild:body z:0];
CCSprite *bMoved = [CCSprite spriteWithSpriteFrameName:@"Gigante1.png"];
[self addChild:bMoved z:1];
NSMutableArray *nuvemAnim = [[NSMutableArray alloc] init];
for (int i = 1; i < 41; i++) {
NSString *frameNames = [NSString stringWithFormat:@"Gigante%i.png",i];
[nuvemAnim addObject:[[CCSpriteFrameCache sharedSpriteFrameCache]
spriteFrameByName:frameNames]];
}
CCAnimation *gigAnim = [CCAnimation animationWithFrames:nuvemAnim delay:1.0f/24.0f];
CCAnimate* animate = [CCAnimate actionWithAnimation:gigAnim];
[bMoved runAction:[CCSequence actions:
[CCDelayTime actionWithDuration:1],
animate,
[CCDelayTime actionWithDuration:1],
[CCCallFunc actionWithTarget:self selector:@selector(changeCCScene)],
nil]];
}
return self; 在第一级中,使用CCSpriteFrameCache来创建角色的动画,
级别:
-(id) init{
if( (self=[super init])) {
self.isTouchEnabled=YES;
CCSpriteFrameCache* frameCache = [CCSpriteFrameCache sharedSpriteFrameCache];
[frameCache addSpriteFramesWithFile:@"Level3.plist"];
CCSprite * backgound = [CCSprite spriteWithSpriteFrameName:@"Fundo9.png"];
backgound.anchorPoint=ccp(0,0);
[self addChild:backgound z:-1];
CCSprite man = [CCSprite spriteWithSpriteFrameName:@"Man1.png"];
[self man z:0];
eAnim = [[NSMutableArray alloc] init];
for (int i = 2; i < 178; i++) {
NSString *frameNames = [NSString stringWithFormat:@Man%i.png",i];
[eAnim addObject:[[CCSpriteFrameCache sharedSpriteFrameCache]
spriteFrameByName:frameNames]];
} 但是在控制台中对所有帧都会无限地给出这种类型的错误
2012-04-03 23:37:51.987 GigV1[1432:10a03] cocos2d: WARNING: an alias with name Man12.png already exists
2012-04-03 23:37:51.988 GigV1[1432:10a03] cocos2d: WARNING: an alias with name Man155.png already existsANy为什么会发生这种情况??
谢谢
发布于 2012-04-04 18:00:09
您正在从Anime.plist和Level3.plist加载sprite帧:
CCSpriteFrameCache* frameCache = [CCSpriteFrameCache sharedSpriteFrameCache];
[frameCache addSpriteFramesWithFile:@"Anime.plist"];
[frameCache addSpriteFramesWithFile:@"Level3.plist"]; 此警告表示您正在添加更多具有相同名称的精灵帧:
WARNING: an alias with name Man12.png already exists要解决此问题,您有三种选择:
发布于 2012-04-04 09:35:23
您在该行中缺少引号:
NSString *frameNames = [NSString stringWithFormat:@Man%i.png",i];
应该是在@之后和Man%i之前的开始引用
https://stackoverflow.com/questions/10002708
复制相似问题