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}
}
Warum wird dies abgelehnt? – xoail