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

那是我设置并启动动作的地方:

  let GoUpAction = SKAction.moveTo(CGPoint(x:80,y:size.height-hVar),duration:1);
    if node1.position.y < (size.height/6) + 20 {
        node2.runAction(GoUpAction)
    }

当它执行时,node2开始以正常速度向上移动,但是(y ++)越高,它移动得越慢。

有趣的事情-通常,这种行为适合我,但我希望能从距离目的地仅1/4的距离开始减速。或根本没有减速。

我没有设置任何重力或任何东西。非常基本的设置。

这是定义节点的方式:
    let node2 = SKSpriteNode(imageNamed: "n2")
    node2.name = "n2"
    node2.position = CGPoint(x: size.width-80, y: size.height-hVar)
    node2.xScale = 0.25
    node2.yScale = 0.25
    node2.zPosition = -1
    addChild(node2)

最佳答案

我没有设置任何重力或任何东西。非常基本的设置。

默认值为(0.0,-9.8),这可能会在y方向上减慢节点速度。尝试设置您的物理身体的属性affectedByGravity

node2.physicsBody.affectedByGravity = NO;

或在创建场景时设置“全局” gravity
self.physicsWorld.gravity = CGVectorMake(0.0f, 0.0f);

摆脱重力。

10-08 12:14