ios – 在Swift中对SpriteKit类进行子类化

前端之家收集整理的这篇文章主要介绍了ios – 在Swift中对SpriteKit类进行子类化前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我对iOS开发很陌生,但我一直在玩SpriteKit模板应用程序,以了解工作原理并尝试在 Swift上启动.我遇到的一件事就是如何使用SpriteKit子类.

我在GameScene.swift文件中,我正在尝试为“Hello World”标签提取一个类,所以这是该文件的样子:

  1. // GameScene.swift
  2.  
  3. import SpriteKit
  4.  
  5. class HelloLabel: SKLabelNode {
  6. init(fontNamed: String) {
  7. super.init(fontNamed: fontNamed)
  8. self.text = "Hello,World!"
  9. self.fontSize = 65;
  10. self.position = CGPoint(x: 400,y: 500);
  11. }
  12. }
  13.  
  14. class GameScene: SKScene {
  15. override func didMoveToView(view: SKView) {
  16. /* Setup your scene here */
  17. // let myLabel = SKLabelNode(fontNamed:"Chalkduster")
  18. // myLabel.text = "Hello,World!";
  19. // myLabel.fontSize = 65;
  20. // myLabel.position = CGPoint(x: 400,y: 500);
  21.  
  22. let myLabel = HelloLabel(fontNamed: "Chalkduster")
  23. self.addChild(myLabel)
  24. }
  25.  
  26. override func touchesBegan(touches: NSSet,withEvent event: UIEvent) {
  27. /* snip,no changes made here */
  28. }
  29.  
  30. override func update(currentTime: CFTimeInterval) {
  31. /* snip,no changes made here */
  32. }
  33. }

因此,HelloLabel旨在成为一个传递,试图了解所有内容是如何连接在一起的,但是当我运行应用程序时,我收到以下错误

  1. /Users/jon/Projects/ErrorExample/ErrorExample/GameScene.swift: 11: 11: fatal error: use of unimplemented initializer 'init()' for class 'ErrorExample.HelloLabel'

我不明白这条消息试图告诉我的是什么.我读这个错误的方式是它抱怨我没有在ErrorExample.HelloLabel类中实现一个名为init的初始化程序,但它确实看起来像我必须得到的!

那么,我在这里做错了什么 – 如何提取一个类来隐藏所有这些设置?

解决方法

我不确定为什么,但SKLabelNode中隐藏的功能试图调用没有参数的init函数.这似乎有效:
  1. class HelloLabel: SKLabelNode {
  2. init() {
  3. super.init()
  4. }
  5.  
  6. init(fontNamed fontName: String!) {
  7. super.init(fontNamed: fontName)
  8. self.text = "Hello,y: 500);
  9. }
  10. }

猜你在找的iOS相关文章