gpt4 book ai didi

ios - Spritekit Swift 终止错误

转载 作者:可可西里 更新时间:2023-11-01 01:06:15 24 4
gpt4 key购买 nike

我正在尝试在 sprite kit 中制作一个具有随机彩色背景的新应用程序,我所做的就是设置背景颜色并在游戏中创建一个球,但它不会首先启动我会给出我的代码,然后是错误。到目前为止,这是我的代码。

import SpriteKit

class GameScene: SKScene, SKPhysicsContactDelegate{

struct PhysicsCategory {
static let None :UInt32 = 0
static let All :UInt32 = UInt32.max
static let Triangle :UInt32 = 0b1 //body1
static let Circle : UInt32 = 0b10 // 2
}

var screenWidth: CGFloat! = 0

var screenHeight: CGFloat! = 0


var circle: SKShapeNode! = SKShapeNode()
var bgColor:SKColor!
var arrayOfColors: NSMutableArray! = NSMutableArray()
var backgroundNode: SKSpriteNode! = SKSpriteNode()

override func didMoveToView(view: SKView) {
super.didMoveToView(view)
// Create the ball
if screenWidth == 1024{
circle = SKShapeNode(circleOfRadius: 22)
}else if screenWidth == 568 || screenWidth == 480{
circle = SKShapeNode(circleOfRadius: 11)
}else{
circle = SKShapeNode(circleOfRadius: 15)
}

circle.fillColor = SKColor.whiteColor()
circle.alpha = 0
circle.physicsBody = SKPhysicsBody(circleOfRadius: circle.frame.size.width/2)
circle.physicsBody?.dynamic = true
circle.physicsBody?.collisionBitMask = PhysicsCategory.None
circle.physicsBody?.usesPreciseCollisionDetection = true
circle.position = CGPoint (x: 29.952, y: 346.555)

self.addChild(circle)

//pick random color
let UInt32Count = UInt32(arrayOfColors.count)
let randomColor = arc4random_uniform(UInt32Count)
let color: SKColor = arrayOfColors[Int(randomColor)] as SKColor

//set random color
let colorAction = SKAction.colorizeWithColor(color, colorBlendFactor: 1.0, duration: 1.0)
backgroundNode.runAction(colorAction)
backgroundNode.size = CGSize(width: 990, height: 640)

}


}

这是到目前为止的完整代码,这是错误。

由于未捕获的异常“NSRangeException”而终止应用程序,原因:“* -[__NSArrayM objectAtIndex:]:索引 0 超出空数组的范围”* 首先抛出调用栈:(0x24c8d5f7 0x324ffc77 0x24ba1157 0x341ec 0x346d8 0x27fb9861 0x27fd4023 0x37888 0x379b0 0x28131c8d 0x281319fd 0x281378c7 0x2813531f 0x2819f5c1 0x283915f1 0x28393a49 0x2839e2f9 0x283922eb 0x2b4030c9 0x24c53ffd 0x24c532c1 0x24c51e1b 0x24b9eb31 0x24b9e943 0x28196127 0x28190f21 0x3a2e8 0x3a324 0x32a9baaf)libc++abi.dylib:以 NSException 类型的未捕获异常终止(lldb)

任何帮助将不胜感激

最佳答案

您已经声明并初始化了您的空数组:

var arrayOfColors: NSMutableArray! = NSMutableArray()

然后您尝试访问空数组:

let color: SKColor = arrayOfColors[Int(randomColor)] as SKColor

这将引发异常,如您在控制台中所示:

'* -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array'

您首先需要在访问之前填充此数组,并确保生成随机数时不会超出数组范围。

关于ios - Spritekit Swift 终止错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28866611/

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