gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 03:28:07 25 4
gpt4 key购买 nike

我有一个使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com