2017-07-29 1 views
-2

Wie kann ich sicherstellen, dass die Karten immer dicht beieinander bleiben, wie unten gezeigt?Wie man mehrere SKSpriteNode locker zusammenhält

enter image description here

kann der Spieler eine oder mehr Karten holen, und ich brauche die restlichen Karten wieder zusammen, um sicherzustellen, schnappen. Auch wenn der Spieler das Sammeln aufgibt (das heißt, er zieht und veröffentlicht), müssen sie wieder zusammen kommen.

Was ist der beste Weg, um dies zu bauen?

+0

Warum wird dies abgelehnt? – xoail

Antwort

2

Ich weiß nicht über einen "besten Weg", aber eine Möglichkeit wäre, einen Platzhalterknoten zu haben, und wenn Ihre Karte nicht (0,0) auf dem Platzhalter ist, senden Sie sie zurück.

Beispiel:

class PlayingCard : SKSpriteNode 
{ 
    override var position : CGPoint 
    { 
     didSet 
     { 
      if self.position != CGPoint.zero, actionForKey("reset") == nil 
      { 
       self.run(SKAction.moveTo(CGPoint.zero,duration:0.5).withKey:"reset") 
      } 
     } 
    } 
} 

zu benutzen:

class GameScene 
{ 
    ..... 
    //however you are setting this up 

    let placeHolder = SKNode() 
    placeHolder = placeHolderPosition 

    let card = PlayingCard() 
    placeHolder.addChild(card) 
    self.addChild(placeHolder) 
    .... 
} 

Jetzt im Auge behalten, je nachdem, wie Sie Ihre Karte bewegen, kann die didSet nicht auf sie genannt werden, immer, so können Sie musst du das im update machen, oder du kannst schummeln und im update einfach folgendes tun:

func update() 
{ 
    ... 
// do my stuff 
    ... 
    //maintain an array of all your playing cards 
    playingCards.forEach{$0.position = $0.position}  

} 
Verwandte Themen