В настоящее время я работаю над игрой, состоящей из трех сцен: GameScene, ArcheryScene и GameOverScene. Когда я запускаю игру, GameScene прекрасно выглядит, а затем я нажимаю на экран, чтобы начать игру, и ArcheryScene прекрасно выглядит. GameOverScene запускается, когда в игре создается контакт, и он также работает. Однако, как только GameOverScene будет представлен, я хотел бы получить доступ к экрану, чтобы вернуться в ArcheryScene и перезапустить игру. Однако, когда я нажимаю на экран, ничего не происходит. Любые советы или предложения были бы очень благодарны, спасибо.Sprite Kit Сцена не указана
GameScene код, который представляет ArcheryScene при постукивании: (работ)
import UIKit
import SpriteKit
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
/* Setup your scene here */
}
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
/* Called when a touch begins */
let welcomeNode = childNodeWithName("welcomeNode")
if (welcomeNode != nil) {
let fadeAway = SKAction.fadeOutWithDuration(1.0)
welcomeNode?.runAction(fadeAway, completion: {
let doors = SKTransition.pushWithDirection(SKTransitionDirection.Down, duration: 1.0)
let archeryScene = ArcheryScene(fileNamed: "ArcheryScene")
archeryScene.scaleMode = .AspectFill
self.view?.presentScene(archeryScene, transition: doors)
})
}
}
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
}
}
ArcheryScene код, который представляет GameOverScene когда контакт сделан: (работ)
let fadeOut = SKAction.sequence([SKAction.waitForDuration(3.0)])
let welcomeReturn = SKAction.runBlock({
let Transition = SKTransition.revealWithDirection(SKTransitionDirection.Down, duration: 1.0)
let gameOverScene = GameScene(fileNamed: "GameOverScene")
gameOverScene.scaleMode = .AspectFill
self.scene!.view?.presentScene(gameOverScene, transition: Transition)
})
let sequence = SKAction.sequence([fadeOut, welcomeReturn])
self.runAction(sequence)
GameOverSceneCode, который представляет ArcheryScene при использовании: (не работает)
import UIKit
import SpriteKit
class GameOverScene: SKScene {
override func didMoveToView(view: SKView) {
/* Setup your scene here */
}
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
/* Called when a touch begins */
let gameOverNode = childNodeWithName("gameOverNode")
if (gameOverNode != nil) {
let fadeAway2 = SKAction.fadeOutWithDuration(1.0)
gameOverNode?.runAction(fadeAway2, completion: {
let doors2 = SKTransition.pushWithDirection(SKTransitionDirection.Down, duration: 1.0)
let archeryScene = ArcheryScene(fileNamed: "ArcheryScene")
archeryScene.scaleMode = .AspectFill
self.view?.presentScene(archeryScene, transition: doors2)
})
}
}
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
}
}
Выполняется ли событие касания? Установите точку останова, чтобы узнать. – LearnCocos2D
Я просто пробовал это, прикосновение даже не работает – BCRwar1
затем установите self.userInteractionEnabled = YES – LearnCocos2D