我正在开发一个有两个功能的游戏。第一个函数用于创建一排障碍物。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) }
谢谢你的帮助。