相对于Spritekit中移动的另一个Sprite相对移动Sprite

时间:2019-03-04 21:09:06

标签: sprite-kit

我正在尝试制作无限滚动游戏。我有建筑物,而我的英雄正在屋顶上跳跃。我想添加在屋顶巡逻的敌人。我已将敌人定位在屋顶上,并且它们正在与建筑物一起滚动。

这就是我的建筑物生成和移动的方式:

public func spawnBuilding() {

    buildingNode = BuildingSprite.newInstance()

    let moveBuilding = SKAction.moveTo(x: -self.frame.width, duration: buildingSpeed)
    let removeBuilding = SKAction.removeFromParent()
    buildingNode.run(SKAction.sequence([moveBuilding, removeBuilding]))

    addChild(buildingNode)

}

敌人:

    public func addCoptoScene(position: CGPoint){

    copNode = CopSprite.newInstance(position: position)

    let moveCop = SKAction.moveTo(x: -self.frame.width, duration: buildingSpeed)
    let removeCop = SKAction.removeFromParent()
    copNode.run(SKAction.sequence([moveCop, removeCop]))

    addChild(copNode)
}

位置CGPoint在每个建筑物的顶部中间。 我为敌人准备了这个运动:

public func move(distance: CGFloat){

    let randomX = CGFloat(Int.random(min: -1, max: 1))
    let vector = CGVector(dx: randomX * distance / 2, dy: 0)

    let moveBy = SKAction.move(by: vector, duration: 1)

    run(SKAction.sequence([moveBy, moveBy.reversed()]))  
}

距离就是我建筑物的宽度。我知道这是不正确的,我将必须找到一种方法来将敌人的行动限制在屋顶的宽度上。

那是我停下来并耗尽想法的地方。

您可能会看到,这是我的第一场比赛。对不起,我的代码不好,我正在尝试改进。

谢谢

0 个答案:

没有答案