gpt4 book ai didi

swift - sceneDidLoad 运行两次

转载 作者:行者123 更新时间:2023-11-30 12:37:33 24 4
gpt4 key购买 nike

当我运行我的程序时。我放入“override func sceneDidLoad()”的代码运行了两次。

例如 "testSpawn()" runs twice

注意:我不知道为什么这张图片没有上传,但它显示“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()”),如果需要我可以提供它,我只是认为没有必要。

最佳答案

在整个文档中搜索“print("spawn")”,以确保这是您唯一一次调用该函数。还要检查“testSpawn()”以确保它只被调用一次。此外,不要依赖此打印来计算 sceneDidLoad 运行的次数,而是直接将打印放在 sceneDidLoad 中。最后,检查以确保您没有创建两次场景。

关于swift - sceneDidLoad 运行两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42680004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com