ios - 渲染CCSprite纹理给出旧图像

标签 ios iphone cocos2d-iphone

我有一个使用 UIImagePicker 的场景。从库中选择图像将显示带有所选图像的新场景。呈现新场景后,我使用以下方法显示从 onEnter 方法调用的图像以及从库中选取的图像。

-(void) loadPuzzleImage:(UIImage*)selectedImageFromLibrary {

    puzzleImage = [[CCSprite alloc] initWithCGImage:[selectedImageFromLibrary CGImage] key:@"selectedimage"];
    puzzleImage.anchorPoint = ccp(0,0);
    puzzleImage.opacity = 80.0f;
    puzzleImage.position = ccp(screenSize.width - puzzleImage.contentSize.width - 136,
                                   screenSize.height - puzzleImage.contentSize.height - 48);

    [self addChild: puzzleImage z:1 tag:10];
    [puzzleImage release];
}

当我返回并从库中选择新图像时,它只显示以前的图像。我通过在 CCSprite 分配中为 CGIImage 使用不同的键来解决它。但是当我使用 Render Texture 获取 CCSprite 图像时,它只返回之前的图像而不是当前图像。我不知道为什么。我使用以下代码来渲染图像。

-(UIImage *) convertSpriteToImage:(CCSprite *)sprite {

    CGPoint p = sprite.anchorPoint;
    [sprite setAnchorPoint:ccp(0,0)];
    CCRenderTexture *renderer = [[CCRenderTexture alloc] initWithWidth:sprite.contentSize.width 
                                                                height:sprite.contentSize.height 
                                                           pixelFormat:kCCTexture2DPixelFormat_RGBA8888];
    [renderer begin];
    [sprite visit];
    [renderer end];
    [sprite setAnchorPoint:p];
    return [renderer getUIImage];
}

并调用此方法

UIImage* tempPuzzle = [self convertSpriteToImage:
                           [CCSprite spriteWithTexture:[puzzleImage texture]]];

我们将不胜感激。

最佳答案

使用“可丢弃”纹理创建 Sprite 后,您应该立即将带有图像名称的 removeTextureForKey: 消息发送到 CCTextureCache。这应该足以在您下次创建具有相同图像名称的 Sprite 时使用相同的键重新加载纹理。

关于ios - 渲染CCSprite纹理给出旧图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20195224/

相关文章:

ios - 其他用户使用 Facebook IOS 应用程序上传视频的问题

iphone - 连续触摸 ccMenuItem

ios - 导航栏按钮项目色调

ios - UITableView 不符合协议(protocol) UITableViewDataSource 错误

ios - MPMoviePlayerController 在调用 -prepareToPlay 后不调用 -play 的情况下播放

cocoa-touch - 为Cocos2D伸出援手。如何从头开始?

database-design - 就表示游戏角色和/或 Sprite 而言,最有效的模型是什么?

ios - 针对大数据的 CoreData 优化

iphone - 如何在不进行任何解析的情况下从服务器检索数据?

ios - GMSMapView 中的倒多边形