我正在生成一个2D平台游戏,其中游戏的目标是跳过对象而不会导致碰撞。我没有编写代码所以一旦碰撞发生,所有风景都会停止,除了每秒产生一个物体。此生成对象在update(currentTime:CFTimeInterval)中添加。
有人知道如何在检测到碰撞时包含此对象以停止产生吗?
谢谢,
override func didMoveToView(view: SKView) {
moving.addChild(trees)
moving.addChild(crow)
moving.addChild(cat) //working (hero)
moving.addChild(sprite) //working background
moving.addChild(dummy) //working ground
moving.addChild(sprite) //working skyline
}
func addCrow() {
// lots of code here
moving.addChild(crow) // not working, still spawning when game stops
}
override func update(currentTime: CFTimeInterval) {
if currentTime - self.lastCrowAdded > 1 {
self.lastCrowAdded = currentTime + 1
self.addCrow() //wont allow me to change from self
}
}
func didBeginContact(contact: SKPhysicsContact) {
if( moving.speed > 0 ) {
moving.speed = 0;
}
答案 0 :(得分:1)
只需更改if中的条件,同时检查速度是否大于0.
这样的事情:
if currentTime - self.lastCrowAdded > 1 && moving.speed > 0