2014-07-07 4 views
2

나는 간단한 게임을 만들고 있는데 '노부 쉬'라는 질문이 있습니다. SKSpriteNode (gem)을 만들고 싶다면 gem이라는 클래스를 만들어야합니다. 거기에 보석을 만드는 메소드가 생성 되었습니까? 아니면 내가 사용하고있는 SK SKene에서 그 메소드를 생성해야합니까?SKSpriteNodes를 설정하는 방법 : 클래스로 또는 SKScene의 메소드에 직접 연결 하시겠습니까?

간단히 말해서 : 장면에 SpriteNodes를 만드는 방법이 있어야합니까? 아니면 각 장면에 대한 클래스를 만든 다음 장면에서 클래스의 인스턴스를 만드는 것이 좋을까요?

감사합니다.

+0

가 달려있다 젬이하는 일과 게임에서 어떻게 사용되는지 - 어떤 방법 으로든 작동합니다. – LearnCocos2D

+0

@ LearnCocos2D 글쎄, 보석은 하늘에서 떨어지고 사용자는 그것을 수집해야합니다. –

답변

0

예는

가한다고 가정 SKScene에 SKSpriteNode (보석)에서 함수 나 방법을 사용해야합니다 당신이 기능/방법을 만들

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) 
+0

감사합니다. 유일한 점은 Scene에서 self.addChild (gemObj.initwithBackgrounds (...))를 사용해야한다는 것입니다. 그렇지 않으면 작동하지 않기 때문입니다. –