2016-08-28 11 views
3

저는 SpriteKit에 처음이므로 초보자 용 질문에 사과드립니다.SpriteKit 개시 및 제스처 각도

나는 사용자가 "대상"의 방향으로 스 와이프 할 수있는 두 개의 개체가 있습니다. 나는 원점 (두 개의 물체가 터치가 시작된 곳)과 스 와이프 각도를 결정해야합니다.

나는 touchesBegan과 touchesEnded를 사용하여 계산할 수 있지만, 스프라이트를 사용하는 다른 방법이 있는지 궁금합니다.

감사합니다.

+1

왜 다른 방식이 필요합니까? 설명대로 작동합니다 ... 시작 지점과 끝 지점을 표시합니다. 두 점 사이의 벡터를 쉽게 계산할 수 있습니다. – Kendel

+0

아마도 알렉스는 그의 물체 움직임에 대해 더 많은 것을 원합니다. :) 내 대답을보십시오. – Fluidity

+0

Kendel, 나는 다른 방법을 필요로하지 않았다. 단지 준비된 해결책이있는 코드를 작성하고 싶지 않았다. 이렇게하는 것이 가장 쉬운 방법 인 것 같다. – Alex

답변

3

항상 다른 무언가를하는 방법 - 이것은 프로그래밍입니다! 이 기능을의에

enter image description here

touchesEnded를 사용하면 '날뛰는'제스처와 같은 종류의하고있다, 다소 제한 될 수 있습니다 루브 골드버그는 아래에 보여하지만, 다른 방법은 가장/가장 쉬운 방법하지 않을 수 있습니다 .

예를 들어, 객체가 연속적으로 x의 속도를 얻고/작은 경로 변경을 할 때 (손가락을 올릴 필요없이) touchesMoved을 사용할 수 있습니다. 원하는 계산/함수로 채우십시오.

예 : 터치와 노드를 드래그 :

override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    //-Main touch processoereor 
    for touch in touches { 

     let TPOINT = touch.locationInNode(self) 
     my_super_cool_node!.position = TPOINT 

     // Put math stuff here, etc. 

    } 
} 

를이 당신에게 여기

B.

을 가리 키도록 지점 A에서 스프라이트에 무슨 일을 통해 더 많은 제어를 제공하는 것은 좋은 튜토리얼 :

http://www.globalnerdy.com/2016/02/02/writing-ios-games-with-swift-and-sprite-kit-part-2-responding-to-touches/

그리고 애플의 물건 : https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIResponder_Class/#//apple_ref/occ/instm/UIResponder/touchesMoved:withEvent :

불행히도 SpriteKit의 가장 좋은 점은 영리한 구현/수학이 필요하고 Scene Editor 및 노드를 사용하여 수행 할 수없는 작업입니다.

당신이하는 일은 꽤 일상적인 (수학) 함수, 거리 계산식입니다. 실제 func을 만드는 것이 유리하므로,이를 사용자 정의하고 수동으로 작성할 필요가 없습니다. 당신이하고 싶은 일마다 코드 톤. SK는 이미 일을 매우 쉽게 만듭니다. C++ Direct3d/OpenGL (그리고 수 많은 고급 수학)을 사용하여 spinny 우주선을 가진 기본적인 hello 세상을 만드는 것은 하루에 수천 줄의 코드 (또는 그 이상) 였을 것입니다.

SK 편집기는 훌륭하고 백엔드에서 프로그래밍을 약간만하면 실제로 편집기로 전체 게임을 만들 수 있습니다.

+0

Thanks. 나는 touchesBegan/Ended를 사용하여 나의 (단순한) 경우를 끝내지 만, 나는 touchesMoved가 그 길을 더 잘 제어 할 수 있다는 사실을 알고있다. – Alex

+0

@AlexZabrodskiy NP, 나는 어떤 종류의 하키 또는 축구 (futbol)를 상상 했었습니다. 그리고 저는 생각 했었습니다. 만약 그가 스핀을 넣으려고했다면 어떨까요? touchesEnded wouldnt는 xD를 작동합니다 (지그재그 모션처럼). – Fluidity