gpt4 book ai didi

ios - 创建一个 SKShapeNodes 数组

转载 作者:行者123 更新时间:2023-11-29 02:30:32 25 4
gpt4 key购买 nike

我是 Swift 开发新手,我正在尝试创建一个简单的赛车游戏。游戏中的道路有车道标记,从屏幕顶部到底部,然后循环回到顶部。我使用 SKShapeNodes 作为车道线标记。

我已经能够让一个车道标记工作,现在我只需要创建一个车道标记数组(我认为?),这样我就可以拥有 2 列车道,并且足以让游戏产生一种错觉一条真正的道路。

我能够创建该数组,但当我尝试向其中添加 SKShapeNode 时出现运行时错误。我得到的错误是:

线程 1:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)

fatal error: Cannot index empty buffer

相关源码如下:

class PlayScene: SKScene {
let road = SKSpriteNode(imageNamed: "road8")
let car = SKSpriteNode(imageNamed: "car")

let laneLineNode = SKShapeNode()
var laneLineNodeArray = [[SKShapeNode]]()
var groundSpeed = 25
}

override func didMoveToView(view: SKView) {
//draw a lane line
var path = CGPathCreateMutable();
var laneLineWidth = self.size.width / 85
var laneLineHeight = self.size.height / 11
var laneLine = CGRect(x: ((self.frame.size.width / 5) * 2), y:
(self.frame.size.height + laneLineHeight),
width: laneLineWidth, height: laneLineHeight)

laneLineNode.lineWidth = 0
laneLineNode.path = CGPathCreateWithRect(laneLine, nil)
laneLineNode.fillColor = SKColor.yellowColor()
laneLineNode.zPosition = 2

//THIS IS THE LINE I GET THE ERROR ON
laneLineNodeArray[0][0] = laneLineNode

self.addChild(self.road)
self.addChild(self.laneLineNode)
self.addChild(self.car)
}

override func update(currentTime: CFTimeInterval) {
//move the lane lines
scrollLaneLines(self.scene!)
}
}

感谢您给我的任何帮助。

最佳答案

首先...您使用此代码关闭类(class)的时间过早:

  var groundSpeed = 25
} // <--

其次...您没有在使用数组之前对其进行初始化。在我的测试中,我因此得到了错误。

您应该使用此语法来初始化数组或按照@Arnab 的建议使用追加。

let laneLineNode = SKShapeNode()
var laneLineNodeArray = [[laneLineNode]]

关于ios - 创建一个 SKShapeNodes 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26953958/

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