プレーヤーが (ポリゴン) 領域に出入りするタイミングを知る必要があります。この領域は SKShapeNodes から構築されます。各 SKShapeNode は単一の直線です。
良いアプローチは、SKPhysicsBody を介してプレーヤーとこれらの行の間の衝突検出を行うようです。プレイヤーがリージョン内またはリージョン外にいるかどうかをフラグで追跡します。
SKPhysicsBody *pilotPhysics = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(0.1, 0.1)];
[pilotPhysics setCategoryBitMask: pilotCategory];
[pilotPhysics setCollisionBitMask: pilotCategory];
[pilotPhysics setContactTestBitMask: airspaceCategory];
しかし、0.1 x 0.1 のサイズでも、私の SKPhysicsContactDelegate は複数の beginContact メッセージを受け取ります。短い間隔で何度もフラグが立てられ、境界を通過した後に間違った値になることがあります。
SKNode が別の SKNode に出入りするタイミングを判断する正しい方法は何ですか?