隕石を集める基本的なロケット ゲームがあります。非常に基本的です。ゲームは問題なく動作しますが、解決しようとしているのに解決できないという本当の煩わしさがあります。
ロケットが隕石に衝突すると:
-(void)ccPhysicsCollisionPostSolve:(CCPhysicsCollisionPair *)pair rocket:(CCNode *)nodeA meteorite:(CCNode *)nodeB{
[self meteoriteRemoved:nodeB];
[self spawnMeteorite];
score ++;
_scoreLabel.string = [NSString stringWithFormat:@"%d", score];
}
削除され、再生成されます。これは問題なく機能しますが、隕石が別の隕石の近くにあり、ロケットが 1 つに激突すると、もう一方の隕石はスヌーカー ボールのようにノックアウトされます。ロケットが衝突するまで動かないようにしてほしい。
同じ衝突グループ内のスプライトにお互いを無視するように指示する方法はありますか?
編集**
次のクラスから隕石をループにロードしています。
@implementation Meteorite
- (void)didLoadFromCCB {
self.physicsBody.collisionType = @"meteorite";
}
@終わり
次に、以下を使用して生成されます。
-(void)spawnMeteorite{
CCNode *meteorite = [CCBReader load:@"Meteorite"];
CGFloat randomX = ((double)arc4random() / ARC4RANDOM_MAX);
CGFloat randomY = ((double)arc4random() / ARC4RANDOM_MAX);
CGFloat rangeX = 320 - 48;
CGFloat rangeY = 2880 - 200;
meteorite.position = ccp((randomX * rangeX)+24, (randomY * rangeY)+ _ground.contentSize.height + _rocket.contentSize.height);
meteorite.physicsBody.velocity = ccp(0,0);
[_physicsNode addChild:meteorite];
}
次のコードは、グループに飛び込むときに隕石衝突のログを非常に頻繁に提供し、それらのほとんどは忘却に飛び去ります!
-(void)ccPhysicsCollisionPostSolve:(CCPhysicsCollisionPair *)pair meteorite:(CCNode *)nodeA meteorite:(CCNode *)nodeB{
NSLog(@"Meteorite HIT");
}
これを調べてくれてありがとう、それが役立つことを願っています