私は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
ありがとうございました、
リック