在圖2.8所示的效果中,能夠看到新增的場景是沒有任何內容的,本節將講解對場景的三個設置,即顏色的設置、顯示模式的設置以及測試信息的設置。swift
backgroundColor屬性能夠用來對場景的背影顏色進行設置,其語法形式以下:框架
var backgroundColor: CGColor!ide
UIColor類給開發者提供了一些便利的方法快速製做常見的顏色的名稱,而不是使用肯定的RGB值。這裏咱們列出了經常使用的顏色,以及他的RGB值,如表2-2所示。測試
表2-2 經常使用顏色以及RGB值spa
【示例2-2】如下將以項目2-1爲基礎,將添加的新的場景的背影顏色設置爲橘黃色,具備操做步驟以下:打開NewGameScene.swift文件,在NewGameScene類中填寫代碼,實現場景的背影顏色的設置,代碼以下:
orm
import SpriteKit視頻
class NewGameScene: SKScene {htm
override func didMoveToView(view: SKView) {教程
self.backgroundColor=SKColor.orangeColor()遊戲
}
}
此時運行程序,會看到如圖2.9所示的效果。
圖2.9 運行效果
固然,開發者仍是能夠根據RGB值來配置本身喜歡的顏色的,如如下的代碼:
override func didMoveToView(view: SKView) {
self.backgroundColor=SKColor(red: 0.6, green: 1.0, blue: 0.0, alpha: 1.0)
}
此代碼實現的功能是將新添加的場景的背景顏色設置爲綠黃色。此時運行程序,會看到如圖2.10所示的效果。
圖2.10 運行效果
場景顯示後,它的內容被複制到呈現視圖中。若是視圖和場景的尺寸相同,則內容能夠直接複製到視圖中。若是二者不同,那麼場景會被縮放以適合視圖。scaleMode屬性決定內容如何縮放。其語法形式以下:
var scaleMode: SKSceneScaleMode
【示例2-3】如下將以項目2-1爲基礎,爲新添加的場景設置縮放模式,具備操做步驟以下:
打開GameViewController.swift文件,在viewDidLoad()方法中添加如下的代碼,此代碼實現的功能就是將場景的縮放模式設置爲Fill:
let scene=SKBGameScene(size: skView.bounds.size)
scene.scaleMode=SKSceneScaleMode.Fill //設置場景的縮放模式
此時運行程序,是不會有任何效果的,須要爲場景添加內容後,才能夠看到效果。爲場景添加內容咱們會在後面講解到。場景的縮放模式有四種,它們的功能以及顯示效果以下:
1.AspectFit
此模式能夠保證場景比例不變,並且所有顯示在視圖中,效果如圖2.11所示。
圖2.11 AspectFit縮放模式
2.AspectFill
此模式能夠保證場景比例不變,會填充整個視圖,可是可能只有部分場景顯示出來,效果如圖2.12所示。
圖2.12 AspectFill縮放模式
3.Fill
此模式可讓場景所有顯示出來,可是會致使場景變形,效果如圖2.13所示。
圖2.13 Fill縮放模式
4.ResizeFill
此模式能夠保證場景與視圖的尺寸相匹配,效果如圖2.14所示。
圖2.14 ResizeFill縮放模式
本小節將講解在遊戲場景中的一些測試信息的設置,如FPS的設置、節點數的設置等。
1.設置場景中的FPS
遊戲運行時每秒所運行的幀數被稱爲Frames Per Second,簡稱FPS。它和視頻同樣,FPS越大,在屏幕上的視頻就愈來愈平滑,直到一個臨界點(大約是100FPS)。超過這個臨界點,再高的FPS都只是一個使人驚奇的數值,400FPS和100FPS在人的視覺中幾乎沒有差異。FPS就是場景中右下角的數字,如圖2.15所示。
圖2.15 遊戲的幀數
對遊戲幀數的設置其實就是進行顯示或隱藏,通常使用showsFPS屬性實現,其語法形式以下:
var showsFPS: Bool
其中,當BOOL值爲true,則在場景中顯示遊戲幀數;當BOOL值爲false,則在場景中不顯示遊戲幀數。通常不對此項進行設置默認爲false即不在場景中顯示遊戲幀數。
【示例2-4】如下將以項目2-1爲基礎,在新增的場景中不顯示遊戲幀數,具備操做步驟以下:
打開GameViewController.swift文件,在viewDidLoad()方法中修改如下的代碼:
if(skView.scene == nil){
skView.showsFPS=false //不顯示遊戲幀數
skView.showsNodeCount=true
let scene=NewGameScene(size: skView.bounds.size)
skView.presentScene(scene)
}yi
此時運行程序,會看到如圖2.16所示的效果。
圖2.16 運行效果
2.設置節點數
在圖2.16中,右下方剩餘的內容就是節點數,在場景中所看到的任何內容都是由節點組成的。對節點數的設置也就是顯示或隱藏該信息,通常使用showsNodeCount屬性進行設置,其語法形式以下:
var showsNodeCount: Bool
其中,當BOOL值爲true,則在場景中顯示節點數;當BOOL值爲false,則在場景中不顯示節點數。通常不對此項進行設置,默認爲false,即不在場景中顯示節點數。
3.設置繪製數量
繪製數量就是當前繪製的次數。對繪製數量的設置主要體如今它的顯示和隱藏方面,通常使用showsNodeCount屬性進行設置,其語法形式以下:
var showsDrawCount: Bool
其中,當BOOL值爲true,則在場景中顯示繪製數量;當BOOL值爲false,則在場景中不顯示繪製數量。通常不對此項進行設置默認爲false即不在場景中顯示繪製數量。
【示例2-5】如下將以項目2-1爲基礎,在新增的場景中顯示繪製的數量,具備操做步驟以下:
打開GameViewController.swift文件,在viewDidLoad()方法中編寫代碼,實現繪製數量的顯示。代碼如如下:
if(skView.scene == nil){
skView.showsFPS=true
skView.showsNodeCount=true
skView.showsDrawCount=true //顯示繪製數量
let scene=NewGameScene(size: skView.bounds.size)
scene.scaleMode=SKSceneScaleMode.Fill
skView.presentScene(scene)
}
此時運行程序,會看到如圖2.17所示的效果。
圖2.17 運行效果
注意:在圖2.17中顯示的繪製數量爲0那是由於尚未在此場景中繪製內容。
4.矩形數量
在默認的場景中,矩形的數量是不進行顯示的,若是想要對其進行顯示,須要使用到showsQuadCount屬性,其語法形式以下:
var showsQuadCount: Bool
其中,當BOOL值爲true,則在場景中顯示矩形數量;當BOOL值爲false,則在場景中不顯示矩形數量。通常不對此項進行設置默認爲false即不在場景中顯示矩形數量。
【示例2-6】如下將以項目2-1爲基礎,在新增的場景中顯示矩形的數量,具備操做步驟以下:
打開GameViewController.swift文件,在viewDidLoad()方法中編寫代碼,實現繪製數量的顯示。代碼如如下:
if(skView.scene == nil){
skView.showsFPS=true
skView.showsNodeCount=true
skView.showsDrawCount=true
skView.showsQuadCount=true //繪製矩形數量
let scene=NewGameScene(size: skView.bounds.size)
scene.scaleMode=SKSceneScaleMode.Fill
skView.presentScene(scene)
}
此時運行程序,會看到如圖2.18所示的效果。
圖2.18 運行效果
注意:在圖2.18中顯示的矩形數量爲0那是由於尚未在此場景中繪製矩形。若是將場景換爲原先的GameScene場景,那麼這些測試信息就不會爲0了,如圖2.19所示。緣由是在GameScene場景中繪製了一個標籤,對於標籤的繪製咱們繪製後面的內容中講解到。
圖2.19 GameScene場景
本文選自:iOS遊戲框架Sprite Kit基礎教程——Swift版大學霸內部資料,轉載請註明出處,尊重技術尊重IT人!