[swift]SpriteKit SKSpriteNode 移动

标签: Xcode ios Swift
发布时间: 2017/3/6 23:33:40
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有一些纹理...

placeForJump = SKSpriteNode(imageNamed: "placeForJump")
placeForJump.position = CGPoint(x: 512.346, y: 98.88)
placeForJump.size = CGSize(width: 166.407, height: 197.762)
placeForJump.zPosition = 2
self.addChild(placeForJump)

和字符......

player = SKSPriteNode(imageNamed: "character")
player.position...
player.size...
player.zPozition = 3
self.addChild(player)

当我触摸的纹理,在那里我可以跳时,我想我的性格,跳上这个地方,但我不知道如何做到这一点。

当我触摸的纹理与 placeForJump-我的性格跳上它。

请帮助。

解决方法 1:

你可以通过检测触摸上跳的地方,然后在用户接触它时你可以运行操作将字符移动到那里。

检测如果在用户接触的地方跳你可以到 touchesBegan 或 touchesEnded 函数添加以下代码︰

for touch in touches {
        let location = touch.locationInNode(self)
        if placeForJump.containsPoint(location) {
             print("It was touched")
        }
}

然后运行操作的地方你想使用 SKAction 像这样︰

player.runAction(SKAction.moveTo(placeForJump.position, duration: speed)

这将球员将节点移到 placeForJump 的小品的可能方式所以如果你想要去更高,然后去的地方你可以这样做︰

let highPoint = CGPoint(x: player.position.x + 50, y: player.position.y + 100)

let moveUp = SKAction.moveTo(highPoint, duration: speed)
let moveDown = SKAction.moveTo(placeForJump.position, duration: speed)
player.runAction(SKAction.sequence([moveUp, moveDown])

希望这可以帮助

官方微信
官方QQ群
31647020