簡體   English   中英

將SKCameraNode用於通用應用SWIFT

[英]Using SKCameraNode for an Universal App SWIFT

我在Xcode 8 beta 4上使用Sprite Kit Level編輯器開發了一款通用游戲。

我在關卡編輯器中的場景為750x3334。 在我的場景中,我有一個背景圖像,背景圖像被調整為場景大小。

  • 場景錨點=(0,1)左上方

  • 背景錨點=(0,1)左上方。

我的場景內需要一台照相機。

我將SKCameraNode設置為縮放比例(1,1),相機的位置是場景的中心。

相機

創建場景:

 if let scene = GKScene(fileNamed: "GameScene") {

        if let sceneNode = scene.rootNode as! GameScene? {

            // Copy gameplay related content over to the scene
            sceneNode.entities = scene.entities
            sceneNode.graphs = scene.graphs
            sceneNode.scaleMode = .aspectFill

            if let view = self.view as! SKView? {

                view.presentScene(sceneNode)
                view.ignoresSiblingOrder = true
                view.showsFPS = true
                view.showsNodeCount = true
            }
        }
    }

啟動游戲時,必須將我的相機的背景頂部設置為與設備的頂部邊緣相等。

要做到這一點:

override func sceneDidLoad() {
    camera?.position.y = -UIScreen.main.nativeBounds.size.height/2
}

對於iPhone 6,它可以完美運行。 對於iPhone 5、6+,我在頂部邊緣有一個空白區域(場景外)。

說明

所以也許我的邏輯是錯誤的...

您不應觸摸屏幕尺寸,而需要使用場景尺寸。 .AspectFill保留相同的場景大小,無論使用哪種設備,唯一更改場景大小的scaleMode都是.ResizeFill

要使相機居中,您需要

camera.position = CGPointMake(scene.frame.size.width / 2, scene.frame.size.height / 2)  

注意,場景可能是自我的,我不知道您將在哪里使用此代碼

您可以像這樣獲得用戶設備的大小

if(UIScreen.mainScreen().bounds.width == 375 && UIScreen.mainScreen().bounds.height == 667)

對於iPhone 6,您可以搜索尺寸,然后調整相機手冊的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM