2013-12-12 40 views
3

我有以下SpriteKit代碼:SpriteKit重力混亂

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 

編輯:

看起來它通過的150倍。這似乎工作就是出:

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

爲什麼會是這種情況?

回答