2016-07-08 7 views
0

iPhone 6 및 6은 해상도가 750 x 1334이고 [1]이고 iPhone 5는 16 : 9 [2]이므로 모든 iPhone의 화면 비율이 적용됩니다. 따라서 완벽하게 맞는 앱의 배경 이미지를 얻으려면 16 : 9 비율을 유지해야합니다. 저는 SpriteKit을 사용하는 프로젝트에서 일하고 있습니다. 게임에서 가장자리에서 끝까지 뒤쪽을 덮는 배경 화면을 만들고 싶습니다. 그러나 시뮬레이터에서 앱을 실행하면 배경 이미지가 항상 오른쪽과 왼쪽에서 잘립니다. 나는 모든 종류의 비율과 결단을 시도해 보았습니다. 이 배경에 대한 프로젝트 코드는 다음과 같습니다.SpriteKit 프로젝트에 배경 이미지 추가

let background = SKSpriteNode(imageNamed: "backtImage") 
    background.size = self.size 
    background.position = CGPoint(x: self.size.width/2, y: self.size.height/2) 
    background.zPosition = 0 
    self.addChild(background) 

내가 뭘 잘못하고 있니?

+0

게시 한 코드에서 'self.size'에 자체가 무엇인지 게시했습니다. SKScene입니까? –

+0

@MrFlynn 예, SKScene – Gabe12

답변

0

SKViewSKScene 크기와 일치하지 않아 이러한 현상이 발생할 수 있습니다.

원천 : 당신은 다음과 같이 코드를 변경할 수 있습니다

@available(iOS 7.0, *) 
public enum SKSceneScaleMode : Int { 

    case Fill /* Scale the SKScene to fill the entire SKView. */ 
    case AspectFill /* Scale the SKScene to fill the SKView while preserving the scene's aspect ratio. Some cropping may occur if the view has a different aspect ratio. */ 
    case AspectFit /* Scale the SKScene to fit within the SKView while preserving the scene's aspect ratio. Some letterboxing may occur if the view has a different aspect ratio. */ 
    case ResizeFill /* Modify the SKScene's actual size to exactly match the SKView. */ 
} 

:

override func viewDidLoad() { 
     super.viewDidLoad() 

     if let scene = GameScene(fileNamed:"GameScene") { 
      // Configure the view. 
      let skView = self.view as! SKView 
      ... 
      /* Set the scale mode to scale to fit the window */ 
      scene.scaleMode = .ResizeFill // <- this is an example 

      skView.presentScene(scene) 
     } 
    } 
+0

아니요 아니요, SKView 크기로 장면 크기를 설정해서는 안됩니다. resizefill이 이것을 수행합니다. – Knight0fDragon

+0

예, 이유가 있습니다. 또한 OP를 혼동시킬 수 있습니다. 삭제합니다. Knight0fDragon, 고마워. –

+0

NP, 장면 크기를 뷰로 설정하는 유일한 시나리오는 크기 조정이 가능한 창이있는 OSX의 경우이고, 어떤 이유에서든 앱을 시작한 장면 종횡비를 유지하려고합니다. – Knight0fDragon

0

이미지는 왼쪽 (세로) 오른쪽 그런 다음 우리가 다루고있는에 잘려지고있는 경우 .AspectFill 눈금 채우기 모드 및 장면에 대한 화면 비율이 화면 해상도보다 짧습니다. 템플릿 빌드에서 제공되는 기본 장면 크기가 정사각형이기 때문에 이러한 현상이 발생할 수 있습니다. .sks 파일로 이동하여 장면 크기를 9x16 비율로 변경하면 문제가 해결됩니다.

+0

하지만이 변화는 iPhone 4s 결과를 손상시킵니다. OP는 또한 보편적이지 않은 iPhone 프로젝트를 선택할 수 있지만 4s 장치를 고려해야하며 여전히 사용할 수 있습니다. 이 게시물에서 –

+0

, OP는 아이폰 4에 관심이 없다. 그래서 내 생각에 이미지의 상단과 하단을 잃을 수있다. – Knight0fDragon

+0

나는 개인적으로 이러한 변경을 코드로 수행하는 것을 선호한다. –