2016-07-05 8 views
1

메신저 게임을하는 중이며 경로를 따라 가면서 SpriteNode의 zRotation에 대한 질문이 있습니다. enter image description hereSwift SpriteKit -ZRotation in SKAction 경로를 따라

임이 Shape의 UIBezierPath를 사용하여 :

그래서 나는이처럼 보이는 ShapeNode 있습니다.

이제는이 경로의 중간에서 시작하여 왼쪽에서 오른쪽으로 임의로 이동하는 SpriteNode가 있습니다. 방향 SpriteNode위한 새로운 경로의 각각의 변화를 산출하는 기능이 메신저에서 또한

func FischRechtsBewegen(){ //for moving right 
    FischNode1.removeAllActions() 
    let BewegeRechts = SKAction.follow(FischKurveRechts.cgPath, asOffset: false, orientToPath: true, duration: 6) 
    FischNode1.run(BewegeRechts) 
} 

func FischLinksBewegen(){ //for moving left 
    FischNode1.removeAllActions() 
    let BewegeLinks = SKAction.follow(FischKurveLinks.cgPath, asOffset: false, orientToPath: true, duration: 6) 
    FischNode1.run(BewegeLinks) 
} 

이 들어

제가

2 개 기능을 갖는다. (이 코드는 내 질문에 중요하지 않으므로 여기서는 예제 코드에서 제거했습니다.)

이 새 경로 (SKAction 용)는 SpriteNode의 실제 위치에서 시작하여 오른쪽으로 이동합니다. (새로운 움직임이 남아있는 경우) 왼쪽으로 이동하여 이전 시작/끝점으로 이동합니다.

내 문제는 지금 왼쪽으로 이동하면 SpritesNodes zRotation은 정확히 내가 원하는 방식입니다. 노드는 화면의 상단을 "봤다". 오른쪽으로 이동하면 SpriteNodes zRotation이 좋지 않습니다. 이제 노드가 화면 하단을 가리키며 매우 추합니다.

Ive가 다른 것을 시도했습니다. SpriteNode (회전)에 사용하는 이미지가 변경되었습니다. 액션으로 SpriteNode의 zRotation을 변경하려고했습니다. 아무것도 도움이되지 않습니다. 물론 내 SKAction에서 나는 "orientToPath = true"라고 말하고 있기 때문입니다. 지금 묻고있는 Im ... SpriteNode를 항상 화면의 맨 위로 "찾는"쉬운 방법이 있습니까? 아니면 update() 함수에서 zRotation을 수동으로 변경해야합니까?

SKAction.follow (orientToPath)에이 속성이 있기 때문에 묻습니다.이 경우에는 사용할 수 있는지 직접 물어보고 있지만, 필요에 따라 조금만 변경할 수있는 방법이 있는지 묻습니다. 또는 이것이 가능하지 않은 경우 - 경로가 왼쪽으로가는 경우 왜 orientToPath가 오른쪽으로가는 경로의 orientToPath와 다른가요?

다음은 내 문제에 대한 동영상입니다. 어쩌면 그게 더 쉽게 보이는지 알 수 있습니다. https://youtu.be/vLH5nUlE91U

+1

'sprite.yScale = -1' 및/또는'sprite.xScale = -1'을 설정해 보셨습니까? – 0x141E

+0

그것은 일했다. .. omg - 매우 쉽다. .. 당신의 도움에 감사드립니다! – aignetti

답변

1

당신은 반전을 시도 할 수 있습니다 방법에 UIBezierPath :

public func bezierPathByReversingPath() -> UIBezierPath 
대신 역 followPath 행동의

, 당신은 시계 방향 감각 또는 반 시계 방향 감각 때 알고 부울이 동작을 모니터링.

+1

답변 해 주셔서 감사합니다. 0x141E에서 이미 답변을했기 때문에이 솔루션을 테스트하지 않았습니다. 같은 문제가있는 다른 사람이이 문제를 시도해 볼 수 있습니까? 나는 SKAction을 뒤집어 썼다는 것을 알았고 이것이 작동하지 않았다. 다시 감사합니다. – aignetti

+0

역방향 SKAction 충분하지 않음 :) 프로젝트에 대한 행운 –

관련 문제