访问另一个类的功能

时间:2016-04-29 21:02:05

标签: iphone swift sprite-kit

所以我有一个名为GameScene的类,它有一个名为makeBackground的函数。在另一个名为I的类中创建了它的一个实例(GameScene),并在新类的didMoveToView中调用了makeBackground:

var gameSceneInstance:GameScene = GameScene()
gameSceneInstance.makeBackground() 

然而,当我运行它时,没有任何反应!

这是函数makeBackground:

 func makeBackground ()
    {
        let bgTxt       = SKTexture(imageNamed: "bg.png")
        let moveBg      = SKAction.moveByX(0, y: -bgTxt.size().height, duration: 5)
        let replaceBg   = SKAction.moveByX(0, y: bgTxt.size().height, duration: 0)
        let moveBgAnimation = SKAction.repeatActionForever(SKAction.sequence([moveBg, replaceBg]))

        //-----background-----
        for var i:CGFloat = 0 ; i<3; i++
        {
            bg = SKSpriteNode(texture: bgTxt)
            bg.position = CGPoint(x: CGRectGetMidX(self.frame), y: bgTxt.size().height/2 + bgTxt.size().height * i)
            bg.size.width = self.frame.width
            bg.runAction(moveBgAnimation)

            movingObjects.addChild(bg)
        }
    }

我是否必须将makeBackground函数复制并粘贴到新类中才能使其正常工作?

同样,在GameScene类的didMoveToView中,我有一些精灵。我可以在这个新课程中使用它们吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您创建了一个GameScene对象的实例并且调用了makeBackground函数并且没有发生任何事情,那么makeBackground函数中的代码就会出现问题。

另外在另一个主题中,在类中创建的实例对象是彼此的错觉,除非专门传入,否则不能在彼此的方法中使用。也许你可以在你的GameScen对象中创建一个方法将这些精灵作为精灵列表或单个精灵传递