Ios 在带有swift的精灵套件中,当我在节点上运行一个动作以将其向上移动到某个y值时,它会逐渐变慢。为什么?

Ios 在带有swift的精灵套件中,当我在节点上运行一个动作以将其向上移动到某个y值时,它会逐渐变慢。为什么?,ios,swift,animation,sprite-kit,skaction,Ios,Swift,Animation,Sprite Kit,Skaction,我没有设置任何物理,也没有使用场景文件。我只是从代码中设置场景 这就是我设置并启动操作的地方: let GoUpAction = SKAction.moveTo(CGPoint(x:80,y:size.height-hVar),duration:1); if node1.position.y < (size.height/6) + 20 { node2.runAction(GoUpAction) } 我没有设置任何重力或任何东西。非常基本的设置 默认值

我没有设置任何物理,也没有使用场景文件。我只是从代码中设置场景

这就是我设置并启动操作的地方:

  let GoUpAction = SKAction.moveTo(CGPoint(x:80,y:size.height-hVar),duration:1);
    if node1.position.y < (size.height/6) + 20 {
        node2.runAction(GoUpAction)
    }
我没有设置任何重力或任何东西。非常基本的设置

默认值为(0.0,-9.8),这可能会降低节点在y方向的速度。尝试设置身体的重力影响的属性

node2.physicsBody.affectedByGravity = NO;
或者在创建场景时设置“全局”
gravity

self.physicsWorld.gravity = CGVectorMake(0.0f, 0.0f);

摆脱重力。

谢谢大家的帮助

然而,这个问题有点结构性。我犯了一个愚蠢的错误,我没有仔细考虑,因为Update方法调用了某个函数(每帧运行一次)

此函数实际上是在每一帧上重新触发精灵移动动作,但每一帧的距离变小,而动作运行的时间相同,因此产生减速效果:)

我不得不重写一些关于何时调用的代码,并摆脱了这个愚蠢的错误

现在一切正常:)


不过,模拟经济放缓的一个有趣技巧是:)

这不应该发生。。。。SKAction持续移动,是否更改变量
hVar
?@M321K nope。它甚至是一个
让hVar=100
你设置了动作的
计时模式
属性了吗?这会导致你看到的行为。你的问题解决了吗?或者我的解决方案有效吗?
self.physicsWorld.gravity = CGVectorMake(0.0f, 0.0f);