SpriteKit을 사용하여 초상화 전용 게임을 만들고 내 이미지 자산을 Images.xcassets
에 넣습니다. 내 이미지 자산과 같이 설정 그래서 이것은 아이폰입니다 : 하나 개의 이미지 자산, 2 배에서, 나는 640x640 PNG를, 예를 들어SpriteKit 도움 스케일링
1x, 2x, Retina 4 2x, 3x
이 아이폰 4/4S, 5/5S에 잘 맞는 그러나 6은 (@ 2x로 축척됩니다.) 6은 약간 더 넓은 화면 @ 750px (또는 375 포인트)를 가지고 있기 때문에 그렇지 않습니다. 그래서 나는 내 장면에 추가 할 때마다 모든 스프라이트에 대해 [mySprite setScale:]
에 전달할 수있는 다음 공식을 사용했습니다.
CGFloat scale = screenPointWidth/(screenScale * 160)
경우 screenPointWidth = [[UIScreen mainScreen] bounds].size.width
및 screenScale = [[UIScreen mainScreen] scale]
. 160
은 기본 1x 픽셀 너비 값 (또는 320/2
)을 나타냅니다. 이것은 스케일 멀티 플레이어를 반환합니다.
이 멀티 플레이어에서는 내 640x640 이미지 크기가 적용되고 750 와이드 스크린에 완벽하게 맞습니다.
내 질문 : 더 좋은 방법이 있습니까, 아니면 올바르게하고 있습니까? 대신에 사용해야하는 보편적 인 배율 설정이 있습니까? 아니면 내 수식을 기반으로 모든 모든 스프라이트와 스프라이트 위치의 배율을 조정해야합니까? 또는 이 아닌이 Image.xcassets
이고 대신 특정 화면 해상도에 대해 개별 .atlas '를 만들면됩니까? 업 샘플링 및 다운 샘플링에 대해 걱정해야합니까, 아니면 iPhone 6/6 + 자체에서 자동으로 처리됩니까?
참조 : http://www.paintcodeapp.com/news/ultimate-guide-to-iphone-resolutions
등록 아이폰 6, "단지 배 이미지 크기를 조정"- 실제로 그 규모를 확대 않거나 당신이 배 이미지를 간단하게 맞 의미입니까? 저는 6이 없기 때문에 Sim을 사용하여 내 2x 자산 (당연히)에서 끌어 당기지 만 사물이 어떻게 보이고 아무 비늘도 보이지 않는지 확인합니다. –
원래 질문을 잘못해서 죄송합니다. 내 대답을 업데이트했습니다. – hamobi
제가 볼 수 있듯이 이미지 자산을 더 크게 만들어서 다양한 화면에서 바로 볼 수 있습니다. @ 2x의 경우 1136x640 (배경 예)을 만든 다음 1024x768 및 960x640 장치에로드합니다. 내 생각에 그렇게 중요하지 않을 수도있는 이미지에 대해서는 받아 들일 만하지만, 정확한 이미지가 필요하다면 체스 보드를 말하면 적합하거나 확장해야합니다. 이 경우 640x640 체스 보드를 사용하면 수식을 적용하여 스프라이트를 화면에 정확하게 맞출 수 있고 x, y 위치를 스케일 할 수 있습니다. 당신의 대답은 가치를 더합니다. 그러나 경계가 바람직하지 않은 경우, 스케일링을 적용해야합니다. 동의합니까? –