无法让SKActionmove可靠地工作

时间:2016-09-26 03:05:56

标签: ios swift sprite-kit swift3

我正在尝试构建一个小型spriteKitGame。我一直在尝试使用该函数将几个坦克精灵节点移动到特定点。

下面附有代码段。

let tankSpawn = CGPoint(x: self.size.width , y: 70);
        tank.position = tankSpawn;
        tank.zPosition = 3.0;

        let targetPoint = CGPoint(x: -tank.size.width/2, y: tank.position.y);

        let actionMove = SKAction.move(to: targetPoint, duration: TimeInterval(tankMoveDuration))

这是我的结果。它们在正确的点(70单位高)产卵,但正如图所示下降。

enter image description here

我希望他们走直线。我将目标点y设置为常量。我不知道他们为什么要关注一些底层来源。

我对上面产生的飞机有类似的代码(它们工作正常)。

  let plane = SKSpriteNode(imageNamed: "SpaceShip");

        let planeMoveDuration = 3.0
        let planeSpawn = CGPoint(x: self.size.width , y: self.size.height/2);
        plane.position = planeSpawn;
        plane.zPosition = 3.0;

        let actionMove = SKAction.move(to: CGPoint(x: -plane.size.width/2, y: plane.position.y), duration: TimeInterval(planeMoveDuration))

我不知道我的错误是什么。

我尝试将目标的y坐标更改为tank.position.y,但它无法正常工作。

1 个答案:

答案 0 :(得分:3)

他们是否在重力作用下坠落?一个带有物理机构的精灵工具包场景会有重力,除非你采取特定行动来避免这种情况,否则事情就会下降。

它很容易完成 - 你正在开发你的游戏,你有屏幕上的基本元素和移动等都运行良好,然后你想添加一些碰撞检测,所以你添加物理实体然后嗖嗖 - 我的精灵在哪里去?