提高游戏速度并在节点之间保持相同的距离

时间:2018-09-21 12:35:18

标签: ios swift sprite-kit skspritenode game-development

我正在开发一款具有两种功能的游戏。第一个功能用于创建一行障碍物。 gameSpeed变量用于确定多行障碍添加的频率。例如:如果我将gameSpeed设置为3,则每3秒添加一个新的障碍物行。

func addobstalce() {
    lastYieldTimeInterval += timeSinceLastUpdate
    if lastYieldTimeInterval > gameSpeed {
        lastYieldTimeInterval = 0
        nextRow(cR: currentRow)
    }
}

,第二个功能用于向其添加移动。该函数具有一个称为travelSpeed的变量。我现在将travelSpeed设置为8。

func addMovement (obstacle : SKSpriteNode) {
    let move = SKAction.move(to: CGPoint(x: obstacle.position.x, y: self.size.height/1.5), duration: TimeInterval(travelSpeed))
    let remove = SKAction.removeFromParent()
    let both = [move,remove]
    moveAndRemove = SKAction.sequence(both)
    obstacle.run(moveAndRemove)
}

因此,当执行上述代码时,每三秒钟添加一个新障碍,该障碍从屏幕底部到屏幕顶部需要8秒钟。

但是随着游戏的进行,我想提高整个游戏的速度。我可以更改travelSpeed和gameSpeed变量,但是当我这样做时,两个障碍物之间的距离不会保持不变。如何在保持两个障碍物之间的距离不变的同时提高游戏速度?

我正在使用switch语句来调节travelSpeed和gameSpeed变量,但我也愿意使用其他方法。

switch obstaclesMade {
    case 10:
        //  increase speed by changing travelSpeed and/or gameSpeed
    case 20:
        //  increase speed by changing travelSpeed and/or gameSpeed
    case 30:
        //  increase speed by changing travelSpeed and/or gameSpeed
    default:
        break
}

这是添加障碍的功能

        func addRow (type :rowType){
        let obst1 = addObstacle(type: .small)
        let obst2 = addObstacle(type: .small)
        let obst3 = addObstacle(type: .small)
        obst1.position = CGPoint(x: self.frame.minX + obst1.size.width/2, y: obst1.position.y)
        obst2.position = CGPoint(x: self.frame.midX, y: obst1.position.y)
        obst3.position = CGPoint(x: self.frame.maxX - obst1.size.width/2, y: obst1.position.y)
        addChild(obst1)
        addChild(obst2)
        addChild(obst3)
        addMovement(obstacle: obst1)
        addMovement(obstacle: obst2)
        addMovement(obstacle: obst3) }

感谢您的帮助。

0 个答案:

没有答案