如何禁用觸摸後的CCRect/sprite觸摸?如何在一次觸摸後禁用CGRect/Sprite上的觸摸
我在init()方法來設置精靈:使用精靈作爲其參數的位置和大小
[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@"testAtlas_default.plist"];
sceneSpriteBatchNode = [CCSpriteBatchNode batchNodeWithFile:@"testAtlas_default.png"];
[self addChild:sceneSpriteBatchNode z:0];
dinosaur1_c = [CCSprite spriteWithSpriteFrameName:@"dinosaur1-c.png"];
[sceneSpriteBatchNode addChild:dinosaur1_c];
[dinosaur1_c setPosition:CGPointMake(245.0, winSize.height - 174.0)];
我然後創建一個的CGRect:
-(BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{
CGPoint touchLocation = [touch locationInView:[touch view]];
touchLocation = [[CCDirector sharedDirector] convertToGL:touchLocation];
touchLocation = [self convertToNodeSpace:touchLocation];
dinosaur1 = CGRectMake(dinosaur1_c.position.x - (dinosaur1_c.contentSize.width/2), dinosaur1_c.position.y - (dinosaur1_c.contentSize.height/2), dinosaur1_c.contentSize.width, dinosaur1_c.contentSize.height);
if(CGRectContainsPoint(dinosaur1, touchLocation))
{
CCLOG(@"Tapped Dinosaur1_c!");
PLAYSOUNDEFFECT(PUZZLE_SKULL);
// Code to disable touches??
// Tried to resize CGRect in here to (0, 0, 1, 1) to get it away from the original sprite, but did not work. Still was able to tap on CGRect.
// Tried [[CCTouchDispatcher sharedDispatcher] setDispatchEvents:NO];, but disables ALL the sprites instead of just this one.
}
}
我能夠成功點擊這個精靈來讓它播放聲音,但是我無法弄清楚如何在被觸摸後禁用CGRect。我已經嘗試了上面代碼中評論的不同方法。任何想法或提示都表示讚賞!
您是否嘗試在'ccTouchBegan:withEvent:'上返回'NO'? – 2012-02-22 02:50:32
解決了!只要stackoverflow允許我發佈我的解決方案。我幾乎在我的init方法中設置了一個 - (BOOL)已跳到NO,並且在檢查它的什麼時候被點擊時,我也檢查它是否爲!= YES。在這種方法中,我設置爲YES,所以下一次出現時,它會通過。 – rizzlerazzle 2012-02-22 02:59:36