Ios 创建一个精灵并给它一个自定义类
我有一个名为Ios 创建一个精灵并给它一个自定义类,ios,swift,swift3,sprite-kit,sprite,Ios,Swift,Swift3,Sprite Kit,Sprite,我有一个名为Ball的自定义类和游戏场景中的一个精灵。sks: 游戏场景。sks: var ball:Ball! override func didMove(to view: SKView) { ball.setUp() addChild(ball) } import Foundation import SpriteKit class Ball: SKSpriteNode { func setUp() { self.texture = SKText
Ball
的自定义类和游戏场景中的一个精灵。sks
:
游戏场景。sks:
var ball:Ball!
override func didMove(to view: SKView) {
ball.setUp()
addChild(ball)
}
import Foundation
import SpriteKit
class Ball: SKSpriteNode {
func setUp() {
self.texture = SKTexture(imageNamed: "ball")
}
}
球。斯威夫特:
var ball:Ball!
override func didMove(to view: SKView) {
ball.setUp()
addChild(ball)
}
import Foundation
import SpriteKit
class Ball: SKSpriteNode {
func setUp() {
self.texture = SKTexture(imageNamed: "ball")
}
}
但它会抛出以下错误:线程1:致命错误:在展开可选值时意外发现nil
有人能帮忙吗?谢谢问题在于,您从未实际为
ball
赋值,这是一个隐式展开的可选选项,因此当您尝试使用ball.setUp()
访问它时,其默认值nil
为强制展开
与其直接修改SKSpriteNode
子类的texture
属性,您只需调用其指定的初始值设定项Ball(imageNamed:“Ball”)
来实例化节点
因此,相应地修改游戏场景.sks:
override func didMove(to view: SKView) {
ball = Ball(imageNamed: "ball")
addChild(ball)
}
问题在于,您从未实际为
ball
赋值,这是一个隐式展开的可选选项,因此当您尝试使用ball.setUp()
访问它时,其默认值nil
为强制展开
与其直接修改SKSpriteNode
子类的texture
属性,您只需调用其指定的初始值设定项Ball(imageNamed:“Ball”)
来实例化节点
因此,相应地修改游戏场景.sks:
override func didMove(to view: SKView) {
ball = Ball(imageNamed: "ball")
addChild(ball)
}
哪一行抛出这个错误?是不是球。设置?您如何在
GameScene.sks
中为ball
赋值?它在这一行抛出错误:“bal.setUp()”哪一行抛出该错误?是不是球。设置?如何在GameSecene.sks
中为ball
赋值?它在这一行抛出错误:“bal.setUp()”