当我运行我的程序。我放入“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中修复。 –