gpt4 book ai didi

iphone - iOs (cocos2d) 屏幕截图缓存或 CCRenderTexture 缓冲区?它没有改变

转载 作者:行者123 更新时间:2023-11-29 11:08:54 24 4
gpt4 key购买 nike

我使用这个问题的提示 stackoverflow.com/questions/12413460是工作。我的问题是图像没有刷新,而应用程序没有重新启动或没有重建。我使用创建屏幕截图的方法。我有什么相同的功能:使用触摸屏,屏幕截图将保存到文档目录中。用户触摸第二个,第二个屏幕截图保存。所以。但是在我的应用程序中,每次只创建第一次触摸屏幕截图,因为它被缓存或缓冲了。

-(UIImage *) screenshotWithStartNode:(CCNode*)startNode
{
[CCDirector sharedDirector].nextDeltaTimeZero = YES;

CGSize winSize = [CCDirector sharedDirector].winSize;
CCRenderTexture* rtx =
[CCRenderTexture renderTextureWithWidth:winSize.width
height:winSize.height];
[rtx begin];
[startNode visit];
[rtx end];

return [rtx getUIImage];
}

我在用户触摸屏幕时调用它(例如)

- (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
CCNode *n = [[[CCDirector sharedDirector] runningScene].children objectAtIndex:0];
UIImage *img = [self screenshotWithStartNode:n];//this image always same by one, same when user touch screen first time
CCSprite *spriteTemp = [CCSprite spriteWithCGImage:img.CGImage key:@"image"];
[self addChild:spriteTemp];
}

屏幕上的项目在时间上有不同的位置。第一次触摸屏幕获得正确的图像。但所有其他触摸创建屏幕截图作为第一张图像并且不会改变。

我想也许是缓冲区 CCRenderTexture?或图像缓存?我会做什么?

我尝试 [img release] 并在触摸后尝试 CGImageRelease(img.CGImage),但应用程序崩溃了。

最佳答案

没错,之前的信息都被缓存了。试试看

[[CCTextureCache sharedTextureCache] removeTextureForKey:@"image"];

在你尝试覆盖之前。

或者如果您同时需要多个图像,则使用不同的键名。

关于iphone - iOs (cocos2d) 屏幕截图缓存或 CCRenderTexture 缓冲区?它没有改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12439164/

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