如何设置SKSpriteNodes:作为一个类或直接在SKScene的方法中?

时间:2014-07-07 07:55:57

标签: swift sprite-kit skspritenode skscene

我正在制作一个简单的游戏而且我有一个'noobish'问题。如果我想创建一个SKSpriteNode(gem),我应该创建一个名为gem的类,那么创建一个创建gem的方法,还是应该在我正在使用的主SKScene中创建该方法?

简单地说:一个场景是否应该有创建SpriteNodes的方法,或者最好为每个创建一个类,然后在场景中创建一个类的实例?

谢谢!

1 个答案:

答案 0 :(得分:0)

是的,您必须在SKScene上的SKSpriteNode(gem)中使用函数或方法

假设你创建了函数/方法

func initwithBackgrounds(files : NSArray , sizeover size:CGSize , pointsperSecondSpeed pointspeed:Double ) -> AnyObject{

        _pointsPerScndSpeed = pointspeed
        _numberImgForBg = files.count
        _backgrounds = NSMutableArray(capacity: _numberImgForBg)
        _randomizeDuringRollover = false


        files.enumerateObjectsUsingBlock { (obj: AnyObject!, idx: Int, stop: CMutablePointer<ObjCBool>) -> () in
           // if let node: SKSpriteNode = obj as? SKSpriteNode {
                // you can do something here with the node...
           // }
            var node = SKSpriteNode(imageNamed: obj as? String)
            node.size = size
            node.anchorPoint = CGPointZero
            node.position = CGPointMake(size.width * CGFloat(idx), 0.0)
            node.name = "BGNode"
            self._backgrounds.addObject(node)
            self.addChild(node)
        }

        return self
    }

此功能在SKScene中使用

let gemObj = gem()
gemObj.initwithBackgrounds(bgImageName, sizeover: pSize, pointsperSecondSpeed: 10.0)