在進行真機測試以前,首先須要確保設備已經連在了Mac(或者Mac虛擬機)上,在第1.9.1小節開始,設備就一直鏈接在Mac(或者Mac虛擬機)上,而且此設備就是註冊過的。打開建立的項目,在運行按鈕一欄中,將程序運行的設備設置爲真機的名稱。它會自動加載到「選擇程序運行的設備」這一項中,如圖1.102所示。單擊運行按鈕,就能夠看到應用程序在真機上運行了。編程
圖1.102 設置設備swift
玩家在移動設備或者是在電腦上進入一個遊戲後,出如今屏幕上的內容被稱爲場景,如圖2.1所示。在遊戲中,場景就是一個關卡,或者是一個遊戲界面。這樣的一個一個的場景就組成了一個遊戲。本章將講解如何實現場景的添加、顯示、設置、切換以及場景的滾動等內容。框架
圖2.1 場景編程語言
在一個遊戲中,可能由一個或者多個場景組成,具體須要根據遊戲的設計要求來決定。那麼場景是如何進行添加的呢?這就是本節將要解決的問題。添加一個新的場景的具體步驟以下:ide
(1)單擊Xcode,彈出Welcome to Xcode對話框。選擇Create a new Xcode project選項,彈出Choose a template for your new project:對話框,如圖2.2所示。測試
圖2.2 建立項目1spa
(2)選擇iOS|Application中的Game模板,單擊Next按鈕後,彈出Choose options for your new project:對話框,如圖2.3所示。設計
圖2.3 建立項目2code
(3)填入Product Name(項目名)、Organization Identifier(標識符)信息以及選擇Language(編程語言)和設備Devices(設備),如表2-1所示。orm
表2-1 填寫的內容
(4)單擊Next按鈕,彈出保存位置對話框架,單擊Create按鈕。此時,一個名爲2-1的項目就建立好了。
(5)單擊項目名稱,打開目標窗口,選擇General選項,打開General面板。在其中找到Device Orientation選項,選擇其中的Landscape Left和Landscape Right單選框。讓運行的模擬器方向變爲橫向,如圖2.4所示。
圖2.4 修改設備的方向
(6)選擇菜單欄上的File|New|File命令,如圖2.5所示。
圖2.5 添加新場景1
(7)彈出Choose a template for your new file:對話框,如圖2.6所示。
圖2.6 添加新場景2
(8)選擇iOS|Source|Swift file模板,單擊Next按鈕,彈出設置文件信息的對話框,其中包括文件名稱和位置,如圖2.7所示。
圖2.7 添加新場景3
(9)輸入文件名稱後,單擊Create按鈕,此時就在建立的項目中新建了一個NewGameScene.swift的文件。單擊打開NewGameScene.swift文件,建立一個空的類,代碼以下:
import SpriteKit
//類的建立
class NewGameScene: SKScene {
}
此時一個新的場景就被添加好了。
在2.1節中,添加新場景後,這時的新場景是不能夠顯示在設備的屏幕中的,那麼如何將新增的場景顯示在屏幕中呢?這就是本節將要講解的內容。
1.建立場景
建立場景也就是所謂的實例化對象。因爲每個場景都是基於SKScene類的,因此每個場景都有一個通用的實例化對象的方法,其語法形式以下:
init(size size: CGSize)
其中,size是場景對象的尺寸,即大小。
2.顯示場景
建立好場景後,此時運行程序,新添加的場景仍是沒法顯示的。若是想要將新的場景進行顯示,須要使用presentScene(_ scene: SKScene?)方法,此方法用來顯示一個場景,其語法形式以下:
func presentScene(_ scene: SKScene?)
其中,_ scene用來表示須要顯示的場景。
【示例2-1】如下將以項目2-1爲基礎,將添加的新的場景顯示在屏幕上,具備操做步驟以下:
打開GameViewController.swift文件,刪除GameViewController.swift文件中的部分代碼。此時剩餘的代碼以下:
import UIKit
import SpriteKit
class GameViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
}
在viewDidLoad()方法中添加如下的代碼,此代碼實現的功能就是將新添加的場景顯示在屏幕上:
override func viewDidLoad() {
super.viewDidLoad()
let skView = self.view as SKView
//判斷skView的scene屬性是否爲空
if(skView.scene == nil){
skView.showsFPS=true
skView.showsNodeCount=true
let scene=NewGameScene(size: skView.bounds.size) //建立場景
skView.presentScene(scene) //顯示場景
}
}
此時運行程序,會看到如圖2.8所示的效果。
圖2.8 運行效果
注意:SKView類是專門用來呈現Sprite Kit的View。在此類中能夠渲染和管理一個SKScene。每一個Scene中能夠加載多個精靈,並管理它們的行爲。
本文選自:iOS遊戲框架Sprite Kit基礎教程——Swift版大學霸內部資料,轉載請註明出處,尊重技術尊重IT人!