2013-12-12 2 views
3

У меня есть следующий код: SpriteKitSpriteKit тяжести путаница

scene.physicsWorld.gravity = CGVectorMake(0, -10); 
... 
- (void)update:(CFTimeInterval)currentTime 
{ 
    [node.physicsBody applyForce:CGVectorMake(0, 10 * node.physicsBody.mass)]; 
} 

Почему applyForce не уравновешивают силы тяжести? Узел падает вниз довольно быстро.

Полный пример:

@interface HelloScene() 

@property SKLabelNode *node; 

@end 

@implementation HelloScene 

- (void)didMoveToView:(SKView *)view 
{ 
    self.backgroundColor = [SKColor blueColor]; 
    self.scaleMode = SKSceneScaleModeAspectFit; 
    self.physicsWorld.gravity = CGVectorMake(0, -10); 
    [self addChild:[self newHelloNode]]; 
} 

- (SKNode *)newHelloNode 
{ 
    self.node = [SKLabelNode labelNodeWithFontNamed:@"Chalkduster"]; 
    self.node.text = @"Hello, World!"; 
    self.node.fontSize = 42; 
    self.node.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame)); 
    self.node.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:10.0]; 
    self.node.physicsBody.mass = 1.0; 
    self.node.physicsBody.angularDamping = 0.0; 
    self.node.physicsBody.linearDamping = 0.0; 
    self.node.physicsBody.friction = 0.0; 
    return self.node; 
} 

- (void)update:(NSTimeInterval)currentTime 
{ 
    [self.node.physicsBody applyForce:CGVectorMake(0, 10 * self.node.physicsBody.mass)]; 
} 

@end 

EDIT:

Похоже, это вне с коэффициентом 150. Это, кажется, работает:

self.physicsWorld.gravity = CGVectorMake(0, -10.0/150.0); 

Почему это так?

ответ

Смежные вопросы