0

iOS SpriteKitでサッカーボールを作りたい

以下のようなコードでボールを作成できました。ただし、まったく跳ねません。リバウンド率を作るには、どうすればいいですか?

(UITouch *touch in touches) {

 SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"Ball"];
 sprite.position = location;
 const CGFloat radius = 20.0f;
 SKPhysicsBody *pbody = [SKPhysicsBody bodyWithCircleOfRadius:radius];
 sprite.physicsBody = pbody;
 sprite.size = (CGSize){radius * 2, radius * 2};
 sprite.physicsBody.linearDamping=0.12f;
 [self addChild:sprite];

}

このように宣言しています。   

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

    self.backgroundColor = [SKColor colorWithRed:0.15 green:0.15 blue:0.3 alpha:1.0];
    self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:(CGRect){CGPointZero, size}];

    self.physicsWorld.gravity=CGVectorMake(0, -100);
}

return self;

}

4

1 に答える 1

1

これは私にはボールのように見えます

- (void) soccerBallExample
{
    // the world bounds
    self.physicsBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:CGRectMake(0, 0, self.size.width, self.size.height)];

    // the ball
    SKShapeNode *ball;
    ball = [[SKShapeNode alloc] init];
    CGMutablePathRef myPath = CGPathCreateMutable();
    CGPathAddArc(myPath, NULL, 0,0, 30, 0, M_PI*2, YES);
    ball.path = myPath;
    CGPathRelease(myPath);
    ball.fillColor = [SKColor blueColor];
    ball.position = CGPointMake(200, 200);
    [self addChild:ball];

    // set the physics
    ball.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:30];
    ball.physicsBody.restitution = 0.8;
}

あなたの例では、半径を使用するためにスプライトを使用しています

// ball.size.width * 0.5;
于 2013-10-25T13:08:04.593 に答える