當我運行我的程序。我放入「override func sceneDidLoad()」的代碼運行兩次。sceneDidLoad運行兩次
注:我不知道爲什麼這幅畫沒有上傳,但它顯示「重生」兩次發生。
此代碼應該只在調用「sceneDidLoad()」時運行一次。
下面是「sceneDidLoad」函數的代碼,以及「testSpawn()」函數(這是賦予重複打印輸出的特定函數)的代碼。
class GameScene: SKScene {
var mapTerrain: SKTileMapNode!
override func sceneDidLoad() {
cam = SKCameraNode()
cam.xScale = 1
cam.yScale = 1
//do zoom by change in scale in pinch. (E.g. if they start out 5 units apart and end up 15 units apart, zoom by a factor of 3
self.camera = cam
self.addChild(cam)
cam.position = CGPoint(x: 100, y: 100)
setupLayers()
loadSceneNodes()
setUpUI()
testSpawn()
//print("\(self.frame.width), \(self.frame.height)")
}
func testSpawn(){
let RedLegion = legion(texture: textureRedLegion, moveTo: nil, tag: 1, health: 2)
RedLegion.position = mapTerrain.centerOfTile(atColumn: 0, row: 0)
RedLegion.team = "Red"
unitsLayer.addChild(RedLegion)
legionList.append(RedLegion)
print("spawn")
}
}
注:並非所有的代碼是在這裏(如「setUpLayers()」),如果需要,我可以提供,我只是不認爲這裏有必要。
這是一個錯誤,已在iOS 11.0 beta中修復。 –