【发布时间】:2023-03-23 22:06:01
【问题描述】:
当我运行我的程序时。我放入“override func sceneDidLoad()”的代码运行了两次。
注意:我不知道为什么这张图片没有上传,但它显示“spawn”发生了两次。
此代码只应在调用“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 测试版中修复。