gpt4 book ai didi

swift - 生成对象时的 EXC_BAD_INSTRUCTION

转载 作者:行者123 更新时间:2023-11-30 10:07:16 28 4
gpt4 key购买 nike

所以我试图在游戏中生成一个下落的物体,并且我使用一个数组来设置所有可能的 xSpawn 点,然后我通过数组进行随机化以获得 x 值,但问题是当它达到代码中的这一行:

let SpawnPoint = UInt32(randomX)

它给了我 EXC_BAD_INSTRUCTION 错误,我似乎不明白为什么。我对 swift 还很陌生,所以如果能解释一下为什么它在这一点上给我一个错误,我会非常珍惜。

完整代码:

func spawnFallingOjects() {

let xSpawnOptions = [-50, -100, 0, 100, 150]

let randomX = xSpawnOptions[Int(arc4random_uniform(UInt32(xSpawnOptions.count)))]


let Bomb = SKSpriteNode(imageNamed: "YellowFrog")
Bomb.zPosition = 900


let SpawnPoint = UInt32(randomX)

Bomb.position = CGPoint(x: CGFloat(arc4random_uniform(SpawnPoint)), y: self.size.height)

let action = SKAction.moveToY(-350, duration: 2.0)
Bomb.runAction(SKAction.repeatActionForever(action))

self.addChild(Bomb)

}

最佳答案

xSpawnOptions 的五个成员中有两个是负数,不能用无符号整数表示。因此,当您尝试将它们转换为:

let SpawnPoint = UInt32(randomX)

它如您所料地崩溃了。

目前尚不清楚您要如何处理随机数生成,但您需要以某种方式更改其逻辑来解决此问题,也许可以通过计算始终为正的随机数,然后添加或减去偏移量,例如:

let SpawnPoint: UInt32 = 50     

Bomb.position = CGPoint(x: CGFloat(Int(arc4random_uniform(SpawnPoint)) + randomX), y: self.size.height)

关于swift - 生成对象时的 EXC_BAD_INSTRUCTION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35353283/

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