1
self.player.xScale = fabs(self.player.xScale)*multiplierForDirection2;

プレイヤーを左に回すと、敵 2 からの衝突を検出できませんが、両方のビットマスクが同じであっても、敵 1 からの衝突を検出できます。私は同様の問題に遭遇し、左に移動する敵と右に移動する敵に対して 2 つの異なる関数を作成する必要がありました。
衝突を防止している xScale の正確な動作は何ですか?

4

1 に答える 1

0

これは spriteKit であると仮定しています.... self.player の親オブジェクトとして機能する SKNode を作成する場合、コライダーを SKNode にアタッチし、プレーヤーで xScale = -1 を使用できます。このようなもの:

    SKNode *parent = [SKNode new];
    parent.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:self.player.frame.size];
    [parent addChild:self.player];
    self.player.xScale = -1;

すべてをまとめるための空のゲーム オブジェクトを持つことに似ています。残念ながら、新しい親ノードに対応するためにコードの一部を変更する必要がある場合があります。

于 2014-07-24T17:44:58.647 に答える