我正在尝试制作无限滚动游戏。我有建筑物,而我的英雄正在屋顶上跳跃。我想添加在屋顶巡逻的敌人。我已将敌人定位在屋顶上,并且它们正在与建筑物一起滚动。
这就是我的建筑物生成和移动的方式:
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()]))
}
距离就是我建筑物的宽度。我知道这是不正确的,我将必须找到一种方法来将敌人的行动限制在屋顶的宽度上。
那是我停下来并耗尽想法的地方。
您可能会看到,这是我的第一场比赛。对不起,我的代码不好,我正在尝试改进。
谢谢