swift“SKNode”类型的值没有成员'rotate'

时间:2018-04-14 13:26:00

标签: swift xcode class override

我创建了一个名为Robber的类,它扩展了SKNode,并在游戏中添加了该类的实例。 但是当我想在实例上调用自定义函数时,它说“类型'SKNode'的值没有成员'旋转'”

为什么不起作用?

  

我的GameScene课程:

enter code here

func addRobber(){
    lastRobber = false
    robber = Robber(x: Int(frame.width),y: Int(frame.height),h:Int(frame.height),so:sOp)
    self.addChild(robber as Robber)
}
override func didMove(to view: SKView) {
    addRobber()
}
[...]
override func update(_ currentTime: TimeInterval) {
      [...]
      for sprite in self.children{
            if( sprite is  Dots_Destroy.Robber)  {
                sprite.rotate()     //Value of type 'SKNode' has no member 'rotate'
            }
      }
}
  

我的强盗班

import SpriteKit
import GameplayKit
import Foundation
class Robber:SKNode{
    let sprite = SKSpriteNode(imageNamed: "wrog.png")
    let sprite2 = SKSpriteNode(imageNamed: "dzialowrog.png")
    let spriteNode = SKNode()
    let g = true
    var life = 2
    init(x:Int,y:Int,h:Int,so:SimpleOpponent){
        super.init()
        [...]
        self.physicsBody?.affectedByGravity = false
        self.name = "rob"
        self.addChild(sprite)
        self.addChild(sprite2)
        self.position = so.sprite.position
        self.physicsBody?.categoryBitMask = 0x1 << 103
        self.physicsBody?.collisionBitMask = 0x1 << 104
        self.physicsBody?.contactTestBitMask = 0x1 << 1


    }
    func rotate(){
        self.run(SKAction.rotate(byAngle: 3.15, duration: 0.3))

    }
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }




}

1 个答案:

答案 0 :(得分:0)

是否有建议通过Xcode解决问题?试试吧,看看。 Xcode实际上非常有用,并且可以解决问题。

单击错误行上显示的红色警报“i”图标,尝试Xcode的任何建议,或者如果可能,只需单击修复。