我目前正在使用 Spritekit 开发一款游戏。游戏中的物体会在屏幕顶部产生并落向玩家角色,当玩家角色与任何物体碰撞时游戏结束。我正在尝试找到一种方法,随着时间的推移逐渐加快游戏速度,使游戏变得更加困难(即游戏开始时物体以正常速度下落,5秒后加速50%,再过5秒再加速50%,无穷无尽。)
我是否需要使用 NSTimer 进行倒计时以增加施加到下落物体的重力?抱歉,如果这是一个基本的事情,我对编程有点陌生。
谢谢,杰克
EDIT:
我的敌人生成方法-
let spawn = SKAction.runBlock({() in self.spawnEnemy()})
let delay = SKAction.waitForDuration(NSTimeInterval(2.0))
let spawnThenDelay = SKAction.sequence([spawn, delay])
let spawnThenDelayForever = SKAction.repeatActionForever(spawnThenDelay)
self.runAction(spawnThenDelayForever)
还有我让敌人倒下的方法——
func spawnEnemy() {
let enemy = SKNode()
let x = arc4random()
fallSprite.physicsBody = SKPhysicsBody(rectangleOfSize: fallSprite.size)
fallSprite.physicsBody.dynamic = true
self.physicsWorld.gravity = CGVectorMake(0.0, -0.50)
enemy.addChild(fallSprite)
}
In spawnEnemy()
,你设置self.physicsWorld.gravity
。将此行移至您的update:
方法。
如果您现在没有跟踪游戏的持续时间,您将需要实现它。您可以使用的参数update:
方法来实现这一点。
然后,您可以使用游戏持续时间来改变重力。
例如,
override func update(currentTime: CFTimeInterval) {
if gameState == Playing{
//update "duration" using "currentTime"
self.physicsWorld.physicsBody = CGVectorMake(0.0, -0.50 * (duration / 10.0))
}
}
10.0
可以根据您希望重力增加的速度进行更改。数值越大,变化幅度越小,数值越小,重力增加得相当快。
希望这能回答您的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)