Переместить спрайт относительно другого спрайта, который перемещается в Spritekit - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь сделать бесконечную игру с прокруткой.У меня есть здания, и мой герой прыгает по крышам.Я хотел бы добавить врагов, патрулирующих на крышах.Я расположил врагов на крышах домов, и они прокручивают здания.

Вот так появляются и двигаются мои здания:

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()]))  
}

Расстояние будет шириной моих зданий.Я знаю, что это неправильно, мне нужно будет найти способ ограничить движение моего врага шириной крыши.

И на этом я остановился и исчерпал идеи.

Как вынаверное видно, это моя самая первая игра.Извините за плохой код, я пытаюсь улучшить.

Спасибо

...