我使用Sprite Kit創建了一個涉及氣球的遊戲。氣球圖像是一個長矩形(虛線),但我用氣球(實線)在氣球本身周圍定義了一個物理體。我希望球員能夠「彈出」氣球。我使用下面的代碼塊來實現這一目標:確定某個點是否位於Sprite Kit中物理主體的邊界內
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
NSArray *nodes = [self nodesAtPoint:[touch locationInNode:self]];
for (SKNode *node in nodes) {
[node removeFromParent];
SKAction *pop = [SKAction playSoundFileNamed:@"pop.wav" waitForCompletion:NO];
[self runAction:pop];
}
}
不幸的是,當有在幫幾個氣球,這種方法可能會導致一個水龍頭爆裂多個氣球。這是因爲精靈圖像重疊(即使物理實體沒有)。還有一個不希望的效果,即在琴絃上點擊會產生與在氣球上點擊相同的效果。
我有權訪問觸點的座標,但是甚至可以檢測某個點是否位於物理體(與節點相對)定義的區域內?
難道不可能檢測觸摸是否在物理體內? – Confused