さて、私はかなり混乱しています。viewcontroller をphysicsworld のデリゲートとして設定しました。Flappy Bird がコインと衝突すると、次のメソッドが実行されます。
- (void)didBeginContact:(SKPhysicsContact *)contact {
if (contact != nil && contact.bodyA != nil){
if (coinsArray.count > 0)
{
if (contact.bodyA.mass == 0) {
[contact.bodyA.node removeAllActions];
[coinsArray removeObject:contact.bodyA.node];
[contact.bodyA.node removeFromParent];
savedData.coins++;
}
}
}}
鳥がコインに触れたときに badaccess コールが発生することがあるため、これは私には意味がありませんが、95% の確率で期待どおりに動作します。シーンからコインが削除されるのは、鳥がコインに触れたときか、coin.position.x < (0.5 * coin.size.width); のときだけです。
特に if (contact != nil && contact.bodyA != nil) と書いたので、なぜ badaccess になっているのかわかりません。さらに、代理人が「ヘイ! この SKPhysicsContact でこのメソッドを実行しますか?
誰からの助けはありますか?