У меня есть изображение с двумя лицами, вверх и вниз (представьте карту). Всякий раз, когда вы нажимаете изображение, оно меняет изображение.Swift Sprite Kit, проходящий Bool
Я использовал Bool
, чтобы получить выражение. Однако, после того, как Сцена представлена снова, я хочу показать изображение, которое было вверх/вниз в последней сцене. Обратите внимание, что это всего лишь 1 сцена, и она появляется снова.
Как передать значение Bool
между Сценами?
// Обновление:
Мой код:
....
var FaceUp = true
....
override func didMoveToView(view: SKView) {
TTexture = SKTexture(imageNamed: "TCard.png")
TTexture.filteringMode = .Nearest
T2Texture = SKTexture(imageNamed: "T2Card.png")
T2Texture.filteringMode = .Nearest
Card = SKSpriteNode(texture: TTexture)
Card.position = CGPoint(x: Rate.position.x - (TransparentLayer.size.width/3), y: Rate.position.y)
Card.size = CGSize(width: 50, height: 50)
Card.name = "Card"
Card.zPosition = 100
self.addChild(Card)
flip(FaceUp)
}
func flip(state : Bool) {
FaceUp = state
if (!state) {
Card.texture = TTexture //Error
Player.texture = T1
Player.runAction(RunAnimation1)
FaceUp = true
} else {
Card.texture = T2Texture //Error
Player.texture = T2
Player.runAction(RunAnimation2)
FaceUp = false
}
}
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
let touch:UITouch = touches.anyObject() as UITouch
let touchLocation = touch.locationInNode(self)
let Node:SKNode = self.nodeAtPoint(touchLocation)
if Node.name == "Card" {
let Scale1 = SKAction.scaleTo(0.7, duration: 0.1)
let Scale2 = SKAction.scaleTo(1, duration: 0.1)
let Scaling = SKAction.sequence([Scale1, Scale2])
Card.runAction(Scaling)
self.flip(FaceUp)
}
}
func Restart(){
self.saveHighScore()
LastScore = Score
self.addLeaderboardScore(self.Score)
let Transition = SKTransition.fadeWithDuration(1.8)
let Scene = GameScene(size: self.frame.size)
Scene.LastScore = Score
Scene.FaceUp = FaceUp
scene?.scaleMode = SKSceneScaleMode.AspectFill
self.scene?.view?.presentScene(Scene, transition: Transition)
}
Я получил это работает с изменением текстуры изображения с вашим методом, однако после того, как новая сцена должна быть представлена, она дает мне 'фатальную ошибку: неожиданно нашла ноль в то время как разворачивание Факультативного value' в' setCardState' функции – Albert
Вы можете показать свой новый код? где вы получаете ошибку? – rakeshbs
Обновление моего сообщения, я объявил ошибку. – Albert