swift - 如何设置SKSpriteNodes : as a class or directly in a method of the SKScene?

标签 swift sprite-kit skspritenode skscene

<分区>

我正在制作一个简单的游戏,我有一个“菜鸟”问题。如果我想创建一个 SKSpriteNode(gem),我应该创建一个名为 gem 的类,在那里创建一个创建 gems 的方法,还是应该在我正在使用的主 SKScene 中创建该方法?

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

谢谢!

最佳答案

是的,你必须在 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)

关于swift - 如何设置SKSpriteNodes : as a class or directly in a method of the SKScene?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24605561/

相关文章:

ios - 如何在 Swift 中使用 Alamofire 将正文参数与文件一起传递到多部分文件上传中

swift - 将 SKSpriteNode 旋转到另一个 SKSpriteNode

ios - 在 iOS7 上将 CIFilter 应用于 SKEffectNode

ios - 使 SKPhysicsBody 单向

ios - 动态收缩 SKSpriteNode

ios - Swift 扩展子句 where this or that

swift - 如何表示一个忽略时间的 Date 对象?

swift - didSet 没有被 Swift 中的 Array.append() 调用

swift - 改变 swift 2 中 Ball Type 的颜色

ios - Spritekit 碰撞