2017-02-03 75 views
0

了我制作的一个叫做Player中的SKShapeNode子类。 我没有错误,构建不会失败,但精灵不会显示在屏幕上。 这是我要创建的这个精灵:雪碧没有出现在现场

override func didMove(to view: SKView) { 
    let sprite = Player(circleOfRadius: 45, fillColor: myColors.blue, strokeColor: myColors.yellow) 
     sprite.position = CGPoint(x: frame.midX, y: frame.midY) 

     self.addChild(sprite) 
} 
+0

无关,但shapenode不是精灵:) – Fluidity

+0

@Fluidity哈哈,谢谢:)它不会被称为精灵,这只是一个测试,不工作OO ... – swiftnewbie

+3

你在初始化器中调用'super.init()'而不是'super.init(circleOfRadius:circleOfRadius)'。 – NobodyNada

回答

0

问题是你super.init() ...它是空白......你用婴儿车circleOfRadius做出自己的初始化,但是这意味着,因为你没有什么计算机没有做任何事情

更糟糕的是,super.init(circleOfRadius: circleOfRadius)将无法​​工作或者是因为它不是一个指定初始化 ...这是一个方便初始化它调用到super.init时,你不能使用

所以,基本上你必须诉诸使用super.init()但随后*更改刚made`

空形状的路径添加这一点,你会得到你的圈子:

self.path = CGPath.init(roundedRect: CGRect(x: 0, y: 0, width: circleOfRadius*2, height: circleOfRadius*2), cornerWidth: 45, cornerHeight: 45, transform: nil) 

enter image description here

+1

谢谢,它正在工作。我现在可以看到这个圆圈 – swiftnewbie

+0

这是你代码中其他地方的问题然后:{ 我把你的代码片段复制到了我的圈子里,这个圈子出现了@swiftnewbie – Fluidity

+0

它可能与你的'myColors'有关,也是......哈哈我'我们已经做到了这一点,确保你的背景与你的节点颜色不一样......并检查'zPosition',并且没有任何东西可以覆盖它@swiftnewbie – Fluidity