1

そのため、ヒーローを画面の端に衝突させたいのですが、上下の壁ではなく、左右の壁だけに衝突させます。

今まで私は私のでこれを設定しました-(id)initWithSize:(CGSize)size

self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame];
    self.physicsBody.categoryBitMask = SceneEdgeCategory;

私のヒーローは彼の方法でこれを持っています:

hero.physicsBody.collisionBitMask = SceneEdgeCategory;

これまでのところすべてがうまく機能していますが、画面全体が物理的な体であるため、私のヒーローはすべてのエッジと衝突します. 彼を壁だけに衝突させる方法はありますか?

みんな助けてくれてありがとう

4

2 に答える 2

1

あなたがしているのは、画面全体に物理的な「ボックス」を追加することです。探しているのは、画面の左右にある 2 つの壁です。これでうまくいくはずです:

//make sure that you define the topLeftPoint, bottomLeftPoint, topRightPoint and bottomLeftPoint variables 

self.leftPhysicsBody = [SKPhysicsBody bodyWithEdgeFromPoint:topLeftPoint toPoint:bottomLeftPoint];
self.leftPhysicsBody.categoryBitMask = SceneEdgeCategory;

self.rightPhysicsBody = [SKPhysicsBody bodyWithEdgeFromPoint:topRightPoint toPoint:bottomRightPoint];
self.rightPhysicsBody.categoryBitMask = SceneEdgeCategory;
于 2014-04-09T14:14:56.197 に答える
0
CGPoint topRightPoint = CGPointMake(self.frame.size.width, self.frame.size.height);

それが私の見た目ですが、うまく動作することを確認しました。私は追加しました:@property (nonatomic) SKPhysicsBody* leftPhysicsBody; @property (nonatomic) SKPhysicsBody* rightPhysicsBody;そして、私のinitWithSizeメソッドに上からあなたの部分があります。私のシーンにも 2 つの physicalBodies を何らかの方法で追加することはできますか? 私がそれらを初期化して割り当てようとしたように、それは助けにはなりませんでした。

于 2014-04-10T16:09:29.740 に答える