快速将CCRenderTexture转换为许多CCSprites

时间:2014-02-21 11:41:09

标签: ios objective-c cocos2d-iphone box2d ccsprite

我正在使用cocos2d + box2d为iphone开发我的游戏。

我需要像this这样的屏幕上的徒手画画。 但我不需要身体是动态的,我需要静体,我画的线必须在从开始到结束点几秒后淡出。

所以,我决定使用上面文章中的代码来绘制CCRenderTexture。 我还在每N个点之后添加一个新的静态b2体(并为数组中的每个体存储点数组)。几秒钟后,我使用第二个带混合功能的画笔

{ GL_ZERO,GL_ONE_MINUS_SRC_ALPHA }

并访问身体的所有点(如图纸)以擦除部分线条。

它工作得很好,但是当我绘制一条长线时有点慢 除此之外,此方法还会删除所有行的交叉点。

我尝试了另一种方法 - 每隔N点从CCRenderTexture创建一个CCSprite并清除CCRenderTexture以进一步绘制。
它看起来更漂亮,但另一方面更慢(当我用两个CCSprites绘制两条线时,我接近10 fps)。

我认为这是“瓶颈”,这是创建CCSprite的方法:

CCTexture2D *tex = [[[CCTexture2D alloc] initWithCGImage:  
[self.target getUIImage].CGImage resolutionType:kCCResolutionUnknown] autorelease];
CCSprite *wallSprite = [CCSprite spriteWithTexture:tex];
[self addChild:wallSprite];
wallSprite.position = ccp(s.width/2, s.height/2);
[self.target clear:0 g:0 b:0 a:0];

还有其他方法可以从CCRenderTexture创建CCSprite,当我清除CCRenderTexture并且工作速度更快时,它不会修改。 或者也许有更好的解决方案来解决我的问题?

谢谢!

0 个答案:

没有答案