我正在尝试制作一个玩家可以选择他们想要玩的角色的游戏。目前我有一个他们选择角色的场景,当他们点击一个角色时,它会转换到他们玩游戏的场景。我尝试通过根据他们选择的字符设置一个整数值,然后使用NSUserDefaults在下一个场景中提供这个整数值来实现这一点,我在这个场景中创建了确定角色纹理的条件(基于他们选择的人)。但它没有用,我的角色出现没有纹理。
我的问题是什么是更好的方法呢?
这就是我目前的目的:
我有两个功能可以在游戏场景中创建两个角色,我会根据玩家选择角色的场景中选择的角色来调用它们:
if choosePlayer == 1{
addDrake()
}else if choosePlayer == 2{
addFuture()
}
目前根本没有人物出现。
更新:
我打印了choosePlayer变量,我发现了问题 - 由于某种原因,它保持等于0。在我选择的角色场景中,当玩家选择其中一个角色时,它应该改变choosePlayer的值(最初设置为Int()),然后转换到下一个场景。可以说他们点击了Future。这是我的代码:
else if chooseFuture.containsPoint(location){
choosePlayer = 2
let playScene = PlayScene(size: self.size)
let transition = SKTransition.flipVerticalWithDuration(0.0)
playScene.scaleMode = SKSceneScaleMode.AspectFill
self.scene!.view?.presentScene(playScene, transition: transition)
}
答案 0 :(得分:1)
我不知道您的print
位置,但您需要在呈现playScene
之前调用您的NSUserDefault设置。实际上,由于您引用了playScene
,只需将choosePlayer
变量移至playScene
,甚至不使用NSUserDefaults。
所以在你的PlayScene.swift中有一个名为choosePlayer
的变量。在UPDATE区域的代码中,运行playScene.choosePlayer = 2
(let playScene = PlayScene(size: self.size)
之后)而不是choosePlayer = 2
。