나는 사용자가 가지고있는 공격을 선택할 수있는 RPG 타입의 게임을 만들고 있습니다. 저는 "Projectile"이라는 이름의 수퍼 클래스와 일반 변수가 설명되어있는 서브 클래스, 그리고 변수를 변경하는 서브 클래스를 갖도록하려고합니다. 그러나 변수 값을 무시할 때마다 EXC_BAD_INSTRUCTION이 표시됩니다.Swift SpriteKit에서 서브 클래 싱하기
import Foundation
import SpriteKit
class Projectile: SKNode {
var texture: SKTexture!
var projectileBody = SKSpriteNode()
var projectile: SKEmitterNode!
var negativeEffect: DefaultNegativeEffect!
func setUpValues() {
texture = SKTexture(imageNamed: "bokeh.png")
projectileBody = SKSpriteNode()
projectile = SKEmitterNode(fileNamed: "testbokeh.sks")
negativeEffect = DefaultNegativeEffect(runningSpeed: 0)
}
override init() {
super.init()
projectileBody.texture = texture
projectileBody.size = texture.size()
projectileBody.position = self.position
self.physicsBody = SKPhysicsBody(circleOfRadius: 2)
self.physicsBody?.dynamic = true
self.physicsBody?.categoryBitMask = PhysicsCategory.Projectile
self.physicsBody?.contactTestBitMask = PhysicsCategory.Monster
self.physicsBody?.collisionBitMask = PhysicsCategory.None
self.physicsBody?.usesPreciseCollisionDetection = true
projectile.position = self.position
self.addChild(projectileBody)
self.addChild(projectile)
}
func update() {
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
import Foundation
import SpriteKit
class FireBall: Projectile {
override func setUpValues() {
texture = SKTexture(imageNamed: "spark5.png")
projectileBody = SKSpriteNode()
projectile = SKEmitterNode(fileNamed: "testbokeh.sks")
negativeEffect = DefaultNegativeEffect(runningSpeed: 0)
}
}
texture, projectile 또는 negativeEffect에 액세스하기 전에 setUpValues ()를 호출 하시겠습니까? – dustincarr
너희들이 나에게 말하지 않을 때까지 나는 아니었다! @dustincarr –