2012-08-11 74 views
0

我試圖創建一個的cocos2d銷燬的世界,我做了一些關於這個問題的閱讀,但我真的不能弄清楚如何得到它的正常工作。黑白色(像素),請與Cocos2D中

我目前所面對的一個非常簡單的測試;屏幕爲黑色和觸摸將借鑑與CCRenderTexture觸摸位置的白圈。

這是我的測試:

// Get the black background 

- (CCSprite *)sprite 
{ 
    CGSize winSize = [CCDirector sharedDirector].winSize; 
    self.renderTexture = [CCRenderTexture renderTextureWithWidth:winSize.width height:winSize.height]; 
    [self.renderTexture beginWithClear:0.0 g:0.0 b:0.0 a:1.0]; 
    [self.renderTexture end]; 
    return [CCSprite spriteWithTexture:self.renderTexture.sprite.texture]; 
} 

- (void)generateBackground 
{ 
    background = [self sprite]; 

    CGSize winSize = [CCDirector sharedDirector].winSize; 
    background.position = ccp(winSize.width/2, winSize.height/2); 

    [self addChild:background z:-1]; 
} 

// Draw the white circle 

- (void)generateExplosionWithTouch:(UITouch *)touch 
{ 
    [self.renderTexture begin]; 

    CGPoint location = [touch locationInView:touch.view]; 
    location = [self convertToNodeSpace:location]; 

    ccDrawCircle(location, 30.0, 5.0, 360, NO); 

    [self.renderTexture end]; 
} 

- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch * touch = [touches anyObject]; 
    [self generateExplosionWithTouch:touch]; 
} 

我加入黑色背景後面添加一個精靈:

CGSize winSize = [CCDirector sharedDirector].winSize; 
self.icon = [CCSprite spriteWithFile:@"Icon.png"]; 
self.icon.position = ccp(winSize.width/2, winSize.height/2); 
[self addChild:self.icon]; 

有一種簡單的方法來檢查精靈是一個黑色/白色區域與某種像素碰撞檢查?

我以前見過這個問題,但答案始終是這樣的:「只要用一個簡單的黑/白圖像檢查它是否是在黑色或白色區域」,確定,但如何? :P

謝謝

裏克

回答

1

如果你想要做的像素碰撞檢測,在這裏你可以找到一個tutorial in 2 parts with code and references

一種替代方法可以是這樣的:

  1. 您使用CCRenderTexture做渲染(如你現在所做的);

  2. 代替將CCRenderTexture您層/父節點,你從它創建一個精靈:

    return [CCSprite spriteWithTexture:renderTexture.sprite.texture]; 
    

    ,這一個添加到您的層/父母。

通過這樣做,你將有一個精靈所代表的所有爆炸,然後你可以做碰撞檢查。

順便說一句,在方法,我建議,您爲每個爆炸新CCRenderTexture。

另一種方法就是像現在這樣做,即使用一個CCRenderTexture並在其中繪製所有內容,同時還保留爆炸CCNode列表(即,您還爲您的CCNode添加了一個CCNode每層爆炸的層/父層)。然後你會在CCNodes上進行碰撞檢測。

+0

好的,我會做教程:)順便說一下,我從CCRenderTexture atm創建一個精靈?哦,謝謝:) – 2012-08-11 10:18:28

+0

你是正確的關於精靈,你是從質感創造它;不知何故,我錯過了CCSprite初始化...... – sergio 2012-08-11 10:26:13