gpt4 book ai didi

swift - 如何在spritekit中通过触摸相对于其原始位置移动 Sprite

转载 作者:行者123 更新时间:2023-11-28 14:52:02 27 4
gpt4 key购买 nike

我想根据玩家的触摸移动 Sprite 。我熟悉 moveTo SKActions,但是我想知道如何实现 Sprite 移动,使 Sprite 随着用户的触摸移动而移动。

例如,我在屏幕中央有一个 Sprite 。如果我触摸屏幕底部并将手指向上移动, Sprite 将从中心(它的原始位置)向上移动。

谢谢!

最佳答案

试试这个:

import SpriteKit

class GameScene: SKScene {

var node = SKSpriteNode()
var nodePosition = CGPoint()
var startTouch = CGPoint()


override func didMove(to view: SKView) {
self.anchorPoint = CGPoint(x: 0.5, y: 0.5)

// node set up
node = SKSpriteNode(color: .red, size: CGSize(width: 50, height: 50))
node.position = CGPoint.zero
self.addChild(node)
}

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first
if let location = touch?.location(in: self){
startTouch = location
nodePosition = node.position
}
}
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
let touch = touches.first
if let location = touch?.location(in: self){
node.run(SKAction.move(to: CGPoint(x: nodePosition.x + location.x - startTouch.x, y: nodePosition.y + location.y - startTouch.y), duration: 0.1))
}
}

}

关于swift - 如何在spritekit中通过触摸相对于其原始位置移动 Sprite ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49781837/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com