我正在制作Swift游戏,但是我的编码经验非常有限 我正在按照youtube上的指南进行操作并获得基本了解 https://www.youtube.com/watch?v=5Q18FYgLYYo&list=PL1YTxp2xLtqSiBhoAiaImXFcjAAxvo1es&index=4
我尝试了Xcode的建议,但是我被卡在这个错误上: “无法为类型'MBMovingGround调用初始化程序吗?”没有参数”
这是我的“ GameScene.swift”文件的一部分
var movingGround = MBMovingGround?()
override func didMove (to view: SKView) {
backgroundColor = UIColor(red: 159.0/255.0, green: 201.0/255.0, blue: 244.0/255.0, alpha: 1.0)
movingGround = MBMovingGround(size: CGSize(width: view.frame.width, height: 20))
movingGround.position = CGPoint(x: 0,y: view.frame.size.height/2)
addChild(movingGround)
}
func TouchesBegan(touches: NSSet, withEvent event: UIEvent?) {
movingGround.start()
答案 0 :(得分:0)
从此处()
删除var movingGround = MBMovingGround?()
并以此方式var movingGround = MBMovingGround?
进行声明。
您的类MBMovingGround
没有没有参数的初始化程序,因此不能像使用()
那样使用没有参数的空初始化程序。
否则,您可以使用大小为零的参数对其进行初始化:
var movingGround = MBMovingGround(size: .zero)
答案 1 :(得分:0)
错误非常明显:
您必须使用带有MBMovingGround(size:)
之类的参数的初始化程序,但必须不要使用默认的初始化程序MBMovingGround()
在这种情况下,声明该变量并稍后对其进行初始化
var movingGround : MBMovingGround?
或-更好-使用 empty 值将其非可选地初始化
var movingGround = MBMovingGround(size: .zero)
声明具有默认值的可选内容还是没有道理的。