2015-02-24 80 views
1

我有这个类Enemy.swift:SpriteKit - 类继承

class Enemy: SKNode { 

    var health = Int() 
    var enemyPosition = CGPoint() 
    var enemy = SKSpriteNode() 
    var enemyName = String() 

    func moveEnemy() { 

       //Some Code 
    } 
} 

我用这GameScene.swift:

func createEnemy() { 

     var monster = Enemy() 
     var node = SKSpriteNode(imageNamed: "Enemy-Sprite1") 
     monster.guy = node 
     monster.health = 4 
     monster.enemyPosition = CGPointMake(10 , 400) 
     monster.guyName = "enemy1" 
     monster.moveEnemy() 
     self.addChild(monster) 
    } 

但它不工作,它不会出现在屏幕上,是的,我确实在“didMoveToView”中调用它。我究竟做错了什么 ?

+0

是什么'enemyPosition'?你有没有设置“怪物位置”? – rakeshbs 2015-02-24 06:39:32

+0

你把你的SKSpriteNode加入你的怪物节点吗?正如在monster.addChild(节点) – 2015-02-24 08:53:10

+0

@rakeshbs是的,它不会改变任何东西。 – Abdou023 2015-02-24 09:33:52

回答

2

您可以继承SKSpriteNode而不是SKNode

class Enemy : SKSpriteNode 
{ 
    var health : Int = 0 
    var enemyName : String = "" 

    func moveEnemy() { 

    } 
} 

而且使用这样的

var monster = Enemy(imageNamed: "Enemy-Sprite1") 
monster.position = CGPointMake(10 , 400) 
monster.enemyName = "enemy1" 
monster.health = 4 
self.addChild(monster) 
+1

是的,这是完美的。我不想用无用的东西(init函数或编码器,解码器)来混淆我的代码。 – Abdou023 2015-02-24 17:51:36