我正在制作一个简单的游戏,但我有一个“noobish”问题。如果我想创建一个 SKSpriteNode (gem),我应该创建一个名为 gem 的类,然后创建一个创建 gem 的方法,还是应该在我正在使用的主 SKScene 中创建该方法?
简单地说:场景是否应该有创建 SpriteNodes 的方法,或者最好为每个创建一个类,然后在场景中创建该类的一个实例?
谢谢!
我正在制作一个简单的游戏,但我有一个“noobish”问题。如果我想创建一个 SKSpriteNode (gem),我应该创建一个名为 gem 的类,然后创建一个创建 gem 的方法,还是应该在我正在使用的主 SKScene 中创建该方法?
简单地说:场景是否应该有创建 SpriteNodes 的方法,或者最好为每个创建一个类,然后在场景中创建该类的一个实例?
谢谢!
是的,您必须在 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)