我想通过IOS SpriteKit制作一个足球

时间:2013-10-23 13:36:12

标签: ios sprite-kit

我想通过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;

}

1 个答案:

答案 0 :(得分: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;