0

さて、私はかなり混乱しています。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 でこのメソッドを実行しますか?

誰からの助けはありますか?

4

0 に答える 0