CCTexture2D内存泄漏

时间:2012-04-17 09:29:29

标签: memory-leaks cocos2d-iphone

任何人都可以回答,我应该更改精灵图像,我使用我的功能

-(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];


}

2 个答案:

答案 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(在退出任何功能之前)在其中创建它以便将其保留在内存中。