1

ボールスプライトが毎回同じ高さで地面から飛び降りるようにします。しかし、ジャンプするたびに、ボールの最大高さの位置が増加します。

-(id)initWithSize:(CGSize)size {    
  if (self = [super initWithSize:size]) {

      SKNode *ground = [SKNode node];
      ground.physicsBody = [SKPhysicsBody bodyWithEdgeFromPoint:CGPointZero toPoint:CGPointMake(CGRectGetMaxX(self.frame), 0)];
      [self addChild:ground];

      SKShapeNode *ball = [[SKShapeNode alloc] init];
      CGMutablePathRef myPath = CGPathCreateMutable();
      CGPathAddArc(myPath, NULL, 0, 0, 30, 0, M_PI*2, YES);
      ball.path = myPath;
      ball.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMaxY(self.frame)-100);
      ball.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:ball.frame.size.width/2];
      ball.physicsBody.linearDamping = 0.0;
      ball.physicsBody.restitution = 1.0;
      [self addChild:ball];

  }
  return self;

}

助言がありますか?

4

1 に答える 1

1

ボールだけでなく、両方のボディに反発と摩擦の両方を設定することを検討してください。縮小せずに拡大している場合は、物理体にエラーがある可能性があります。SKShapeNode私のテストでは信頼できないことで有名です - 私はSKSpriteNodeあなたの正気を維持するために代わりに使用することを検討します.

于 2013-10-14T14:33:44.260 に答える