任何人都可以回答,我应该更改精灵图像,我使用我的功能
-(void) openKeyWithSprite:(id) sender withSpriteName:(NSString*)spriteName
这会导致内存泄漏还是没问题?
在中
_spriteBonus=[CCSprite spriteWithFile:@"monstr_1_1.png"];
在日程表中
-(void) openKeyWithSprite:(id) sender withSpriteName:(NSString*)spriteName
{
CCTexture2D* tex = [[CCTextureCache sharedTextureCache] addImage:spriteName];
[_spriteBonus setTexture: tex];
}
答案 0 :(得分:0)
如果要创建帧动画,请使用CCAnimate操作。例如,
id yourAnimation = [CCAnimation animationWithFrames: arrayOfFrames];
id animateAction = [CCAnimate actionWithDuration: animationDuration
animation: yourAnimation
restoreOriginalFrame: YES];
[yourSprite runAction: animateAction];
如果您需要重复动画,请使用CCRepeat的CCRepeatForever操作,例如
id resultAction = [CCRepeatForever actionWithAction: animateAction];
[yourSprite runAction: resultAction];
答案 1 :(得分:0)
您在此处显示的代码应该没问题,不会泄漏任何内存。 setTexture
释放旧纹理参考并保留新纹理参考。
但是,假设您没有使用ARC:[CCSprite spriteWithFile:@"monstr_1_1.png"];
在autorelease
池中,请确保将其添加到父CCNode
(在退出任何功能之前)在其中创建它以便将其保留在内存中。