2015-01-03 3 views
3

Swift SpriteKit 프로그래밍을 처음 사용하고 좌표계가 나를 미치게 만듭니다. 저는 스프라이트를 만들고 그것을 화면의 네 구석으로 옮기고 싶습니다. 그래서 위치를 (0,0)으로 설정했습니다. 화면의 왼쪽 하단에 있습니다. 몇 가지 수동 테스트를 통해 아래 차트를 개발했습니다. 왼쪽 하단과 오른쪽 상단은 화면을 터치 할 때 iOS 시뮬레이터에서보고하는 내용입니다.SKScene의 왼쪽 하단 좌표

1 :

나는이 개 질문이 뷰의 왼쪽 하단 모서리의 좌표를 결정하는 방법이 있습니까? 아마 좌표 값을 가진 사전을 만들고 기계 유형을 결정한 다음 오프셋을 설정할 수 있습니다. 하지만 이는 많은 작업을 필요로하며 새로운 기기에서는 정확하지 않을 수 있습니다. 그냥 창 왼쪽 하단에 물체를 넣을 때 사용할 수있는 장면 또는 프레임 속성이 있어야하는 것 같습니다.

2 : 수학이 작동하지 않습니다. iPhone5에서 300 (왼쪽 아래 x) + 320 (너비) = 620,보고 된 727이 아닙니다. y 좌표와 동일한 문제가 발생합니다. 이게 어떻게 작동합니까?

최대한 적은 수의 매개 변수를 설정했습니다. 앵커 포인트 또는 장면의 위치를 ​​변경하지 않았습니다.

 
Device  Size   LL  UR 
iPhone4s (320,480) (260,0) (766,764) 
iPhone5  (320,568) (300,0) (727,764) 
iPhone5s (320,568) (298,0) (727,764) 
iPhone6  (375,667) (297,1) (728,765) 
iPhone6plus (414,736) (298,0) (728,766) 
iPad2  (768,1024) (226,0) (800,768) 
iPad Air (768,1024) (224,0) (800,767) 
iPad Retina (768,1024) (225,0) (800,768) 
+0

결론은 스프라이트가 화면을 떠날 때를 파악하려고하는 것입니다. 어떤 도움을 주시면 감사하겠습니다. – JimF

+0

코드를 게시하십시오. 좌표는 터치 이벤트 (장면 또는 스프라이트?)를 가로채는 위치, 앵커 포인트 (0,0의 스프라이트는 0,0에 중심 맞춤 *), 장면 스케일 모드, 장면/월드 공간으로의 좌표 변환 방법에 따라 다릅니다. – LearnCocos2D

답변

0

근면 한 박수를 위해! 나는 낮은 좌표 값을 얻기에 관하여가는 경우 하하, 나는이 마찬가지로 y 좌표를 얻을 수 CGRectGetMinY를 x 좌표 얻을 CGRectGetMinX을 사용합니다 :

CGPoint minimum = CGPointMake(CGRectGetMinX(self.frame),CGRectGetMinY(self.frame));

를 그런 다음에 원하는 경우 상단 좌표를 얻으려면 MaxX 또는 MaxY라고 말하면됩니다. 그래, 좌표는 약간 혼란 스럽다. 그러나 만약 당신이 그것들을 사용한다면 그것은 산들 바람 일 것이다.

편집 : 당신은 시체가 눈에 보이는 공간 외부 종료 된 경우 찾아 낼 필요가있는 경우에, 지금까지 어떤 날

[SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame]

가능성 가장자리에 접촉을 감지하는 물리학 몸을 만드는 위해 일했다 시도 할 수있는 또 다른 옵션은 UIScreen 객체의 범위를 보는 것입니다.

+0

M321K : 아이디어를 가져 주셔서 감사합니다. 그러나 그 점은 (0,0)이 아닌 (300,0) 또는 적절한 것으로 반환합니다. – JimF

+0

중간 지점이 정확하다고 말할 수 있습니다. 이것은 정말 이상합니다. 나는 방금 내 게임 중 하나를 열고 floor.position = CGPointMake (CGRectGetMidX (self.frame), CGRectGetMinY (self.frame) + 5);라는 라인이있다. 그래서 나는 그 물건을 달았고 틀림없이 바닥이 틀의 바닥에 보였습니다. 몇 가지 물건을 시험 해보려고 ... – MaxKargin

+0

나는 똑같은 것을 발견했다. 중간 점은 객체를 화면 중간에 배치합니다. 그러나 물건이 장면을 벗어날 때 알려주지는 못합니다.하숙인 주변에 물건을 놓을뿐입니다. 그러나 나는 그것이 어디 있는지 모릅니다! – JimF

1

좋아, 생각해 봤어. 장면을 설정하십시오. .scaleMode = SKSceneScaleMode.ResizeFill을 사용하면 화면의 네 모서리를 식별 할 수 있습니다. 이제 스프라이트가 화면 가장자리를 가로 지르는시기를 결정할 수 있습니다. 이것은 내 이미지를 왜곡하지 않는 것 같습니다. 아직 읽은 장치에서 테스트 할 수 없었지만 iPad2 주위에 빈 공간이 남습니다.

관련 문제