我正在尝试使用 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
谢谢,
瑞克