На данный момент у меня есть игра, в которой спрайт можно контролировать и перемещать вдоль оси x (с фиксированной позицией y) с помощью акселерометра устройства. Я хочу изменить это, чтобы пользователь мог управлять спрайтом, перетаскивая его по экрану, как в популярных играх, таких как змея против блока.
Я уже пытался использовать метод перемещений касаний, который дает правильный эффект, хотя спрайт сначала перемещается в местоположение касания пользователей, которое мне не нужно.
Ниже приведена среда, которую я использовал для экспериментов, перемещенные касания дают нужный тип управления, который я хочу, хотя я не могу понять, как остановить спрайт, сначала перемещающийся в местоположение касания до того, как салфетки / перетащить
import SpriteKit
import GameplayKit
var player = SKSpriteNode()
var playerColor = UIColor.orange
var background = UIColor.black
var playerSize = CGSize(width: 50, height: 50)
var touchLocation = CGPoint()
var shape = CGPoint()
class GameScene: SKScene {
override func didMove(to view: SKView) {
self.backgroundColor = background
spawnPlayer()
}
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches{
let touchLocation = touch.location(in: self)
player.position.x = touchLocation.x
}
}
func spawnPlayer(){
player = SKSpriteNode(color: playerColor, size: playerSize)
player.position = CGPoint(x:50, y: 500)
self.addChild(player)
}
override func update(_ currentTime: TimeInterval) {
// Called before each frame is rendered
}
Итак, я ищу тот же метод управления спрайтом, что и в змеях против блоков