【发布时间】:2016-09-30 21:54:18
【问题描述】:
我正在尝试创建一个游戏,用户可以在其中滑动节点,一旦滑动节点,将在屏幕底部创建一个新节点并将所有其他节点向上推,有点像反向俄罗斯方块。这是一个非常基本的图像,给你一个想法:
我已经能够弄清楚如何将节点滑出屏幕,但似乎无法弄清楚如何让所有其他节点向上移动一行并在底部创建一个新节点。我尝试为我刚刚刷过的节点做一个“addChild”,这样它就可以再次出现在底部,但不断收到错误消息,指出该节点已经有一个父节点。到目前为止,这是我的代码:
import SpriteKit
let plankName = "woodPlank"
class PlankScene: SKScene {
var plankWood : SKSpriteNode?
override func didMove(to view: SKView) {
plankWood = childNode(withName: "woodPlank") as? SKSpriteNode
let swipeRight : UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(PlankScene.swipedRight))
swipeRight.direction = .right
view.addGestureRecognizer(swipeRight)
}
func swipedRight(sender: UISwipeGestureRecognizer) {
if sender.direction == .right {
let moveOffScreenRight = SKAction.moveTo(x: 400, duration: 0.5)
let nodeFinishedMoving = SKAction.removeFromParent()
plankWood?.run(SKAction.sequence([moveOffScreenRight, nodeFinishedMoving]))
plankWood?.position = CGPoint(x: 0, y: -250)
addChild(plankWood!)
}
}
}
【问题讨论】:
-
如果您不移动它 x:400 但假设 x:20,您看到它消失还是仍在屏幕上?如果它停留在屏幕上,则说明它没有正确地从父级中移除。
-
.copy()让你复制
标签: ios swift sprite-kit skspritenode skscene