Ios SpriteKit重力加速度

Ios SpriteKit重力加速度,ios,ios7,sprite-kit,game-physics,Ios,Ios7,Sprite Kit,Game Physics,我有一个只有一个身体的场景 self.player.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:self.player.size.height / 2]; self.player.physicsBody.dynamic = YES; self.player.physicsBody.allowsRotation = NO; self.player.physicsBody.mass = 1; [self addChild:self.play

我有一个只有一个身体的场景

self.player.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:self.player.size.height / 2];
self.player.physicsBody.dynamic = YES;
self.player.physicsBody.allowsRotation = NO;
self.player.physicsBody.mass = 1;
[self addChild:self.player];
重力设置为-9.8:

self.physicsWorld.gravity = CGVectorMake( 0.0, -9.8 );
我试图检查这是否属实:

-(void)update:(CFTimeInterval)currentTime {
    /* Called before each frame is rendered */
    double delta = currentTime - _pasttime;
    _pasttime = currentTime;
    float ax = (self.player.physicsBody.velocity.dx-self.oldVelocity.dx)/delta;
    float ay = (self.player.physicsBody.velocity.dy-self.oldVelocity.dy)/delta;
    self.oldVelocity = self.player.physicsBody.velocity;
    NSLog(@"The acceleration is: %f %f",ax,ay);
}
我得到以下输出:

2014-04-10 17:12:12.469 PhysicsTest[4508:60b] The acceleration is: 0.000000 -413.161133
2014-04-10 17:12:12.485 PhysicsTest[4508:60b] The acceleration is: 0.000000 -1732.006226
2014-04-10 17:12:12.502 PhysicsTest[4508:60b] The acceleration is: 0.000000 -829.603760
2014-04-10 17:12:12.518 PhysicsTest[4508:60b] The acceleration is: 0.000000 -860.666260
2014-04-10 17:12:12.534 PhysicsTest[4508:60b] The acceleration is: 0.000000 -831.616455
2014-04-10 17:12:12.568 PhysicsTest[4508:60b] The acceleration is: 0.000000 -514.745300
2014-04-10 17:12:12.585 PhysicsTest[4508:60b] The acceleration is: 0.000000 -1667.948853
2014-04-10 17:12:12.601 PhysicsTest[4508:60b] The acceleration is: 0.000000 -839.192383
2014-04-10 17:12:12.618 PhysicsTest[4508:60b] The acceleration is: 0.000000 -807.683167
2014-04-10 17:12:12.651 PhysicsTest[4508:60b] The acceleration is: 0.000000 -523.592285

怎么回事?

你期望的结果是什么?@sangony 2014-04-10 17:12:12.469 PhysicTest[4508:60b]加速度是:0.000000-9.8,重复了一次又一次..也许我完全没有领会你的意思。。。你是说你的玩家的加速曲线不正确吗?@sangony我应该有一个坠落物。以恒定加速度下落,重力加速度为-9.8。我得到的是一个非恒定加速度,其值与-9.8非常不同。我自己运行了你的代码。我有一个标准属性的1x1雪碧。看起来物体离可见屏幕越远,其速度越慢。我的精灵的速度从-18523开始,大约50秒后速度下降到-7。我只能假设,物理引擎的设计是为了在物体离实际观察区域越远的情况下,对物体的关注就越少,这是有道理的。为什么要在距离可见区域50000点的对象上花费处理器周期?这是一种解释,不是答案。