SpriteKit 重力混淆

3

我有以下的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);

为什么会这样呢?
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接