플레이어가 스크린 상단에서 산란하는 떨어지는 개체를 수집하는 SpriteKit의 게임에 스 와이프 제스처를 왼쪽 및 오른쪽으로 구현하려고합니다. 내가 직면하고있는 문제는 터치가 끝날 때까지 손가락이 화면에있는 동안 플레이어의 지속적인 움직임을 유지하려고하는 것이고 플레이어는 마지막 터치가 끝난 곳에서 머문다. 스 와이프 제스처 이외에도 이것을 구현하는 더 좋은 방법이있을 수 있습니다. 왜 내가 여러분에게 묻고 있습니까! 어떤 도움도 좋을 것입니다. 모두 감사합니다!SpriteKit에서 스 와이프 인식기 사용
1
A
답변
2
이것은 스 와이프 (제 생각에는 당신이 팬을 사용하고 있다고 생각합니다) 제스처를 사용하고 싶지 않습니다. 원하는 것은 장면에서 touchesBegan
, touchesMoved
및 touchesEnded
호출을 무시하고이 세 가지 방법에 따라 운동을 계획하는 것입니다.
아마도 이러한 방법으로 SKAction.move(to:duration:)
을 사용하고 일정한 속도를 유지하기위한 수학을 계산할 것입니다.
E.G.
func movePlayer(to position:CGPoint)
{
let distance = player.position.distance(to:position)
let move = SKAction.move(to:position, duration: distance/100) // I want my player to move 100 points per second
//using a key will cancel the last move action
player.runAction(move,withKey:"playerMoving")
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?)
{
let touch = touches.first
let position = touch.location(in node:self)
movePlayer(to:position)
}
override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?)
{
let touch = touches.first
let position = touch.location(in node:self)
movePlayer(to:position)
}
override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
let touch = touches.first
let position = touch.location(in node:self)
movePlayer(to:position)
}
대단히 감사합니다. @KnightOfDragon – Alex
문제 없으므로 다른 사람들에게 알리려면 허용으로 표시해야합니다. – Knight0fDragon