Class SpriteKit类继承
我有这个班的敌人。斯威夫特:Class SpriteKit类继承,class,inheritance,sprite-kit,Class,Inheritance,Sprite Kit,我有这个班的敌人。斯威夫特: class Enemy: SKNode { var health = Int() var enemyPosition = CGPoint() var enemy = SKSpriteNode() var enemyName = String() func moveEnemy() { //Some Code } } 我在GameSevent.swift中使用了这个: func crea
class Enemy: SKNode {
var health = Int()
var enemyPosition = CGPoint()
var enemy = SKSpriteNode()
var enemyName = String()
func moveEnemy() {
//Some Code
}
}
我在GameSevent.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”。我做错了什么 您可以将
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)
什么是
enemyPosition
?你是否设置了怪物的位置?你是否将你的怪物节点添加到你的怪物节点?就像monster.addChild(node)@rakeshbs一样,是的,它不会改变任何东西。为什么不只是将一个SKSpritenode子类化呢?因为它是一个SKSpritenode的子类,你必须使用至少一个初始值设定项。是的,这是完美的。我不想用无用的东西(init函数或coder,aDecoder)弄乱我的代码。