首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SubClassing (skspritenode)中创建一个子类

在SubClassing (skspritenode)中创建一个子类
EN

Stack Overflow用户
提问于 2016-01-05 15:17:19
回答 2查看 808关注 0票数 1

我目前正在制作一款将有多种类型敌人的游戏,我目前使用SKSpriteNode的一个子类创建了基本的敌人,一切都很正常。我现在想实现基本敌人的另一个子类,因为所有的敌人都是相似的。我在创建新的子类时遇到了问题。任何帮助都将不胜感激。这是我的代码。

代码语言:javascript
复制
class Basic_Fighter : SKSpriteNode  {

    var health : Int = 3
    var ship_speed : Double = 7.0
    var bullet_rapidness : Double = Double ((arc4random_uniform(3) + 2) )
    var bullet_speed : Double = 3.0
    var action = SKAction()
    var bullet_Timer : NSTimer?


    func subtract_health(){ health-- }

    func enemy_killed(){
        let action = SKAction.moveToY(-1000, duration: 5)
        self.runAction(SKAction.repeatActionForever(action))
        let rotateAction = SKAction.rotateByAngle(CGFloat(M_PI), duration: 3)
        self.runAction(SKAction.repeatActionForever(rotateAction))

        //Set a timer to destoy the node
        _ = NSTimer.scheduledTimerWithTimeInterval(3.0, target: self, selector: Selector("destroy"), userInfo: nil, repeats: false)

    }

    func destroy(){
        self.removeFromParent()
    }
}

下一个敌人..。

代码语言:javascript
复制
class new_fighter : Basic_Fighter  {

    convenience init(){
        self.init()
        health = 5
    }
}
EN

回答 2

Stack Overflow用户

发布于 2016-01-05 15:47:40

我不确定你到底在问什么问题,但这部分是错的:

代码语言:javascript
复制
class new_fighter : Basic_Fighter  {
    convenience init(){
        self.init()
        health = 5
    }
}

如果没有指定的初始值设定项,就不能按原样声明方便的初始值设定项。也许您应该重新阅读Swift语言参考中关于指定初始化器与方便初始化器的部分。

documentation

...Swift对初始化器之间的委托调用应用以下三个规则:

规则1

指定的初始化器必须从其直接超类调用指定的初始化器。

规则2

方便的初始值设定项必须从同一类调用另一个初始值设定项。

规则3

方便的初始值设定项最终必须调用指定的初始值设定项。

票数 1
EN

Stack Overflow用户

发布于 2016-01-05 22:25:18

当你继承SKSPriteNode子类时,你必须使用这个指定的初始值设定项:

代码语言:javascript
复制
init(texture: SKTexture?, color: UIColor, size: CGSize)

在您方便的初始化器调用中:self.init(texture: texture, color: color, size: size)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34606141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档