iOS Sprite Kit教程之場景的設置

iOS Sprite Kit教程之場景的設置

Sprite Kit中設置場景

在圖2.8所示的效果中,能夠看到新增的場景是沒有任何內容的,本節將講解對場景的三個設置,即顏色的設置、顯示模式的設置以及測試信息的設置。swift

Sprite Kit中設置場景的背影顏色

backgroundColor屬性能夠用來對場景的背影顏色進行設置,其語法形式以下:框架

var backgroundColor: CGColor!ide

UIColor類給開發者提供了一些便利的方法快速製做常見的顏色的名稱,而不是使用肯定的RGB值。這裏咱們列出了經常使用的顏色,以及他的RGB值,如表2-2所示。測試

2-2  經常使用顏色以及RGBspa

【示例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  運行效果

Sprite Kit中設置場景的縮放模式

場景顯示後,它的內容被複制到呈現視圖中。若是視圖和場景的尺寸相同,則內容能夠直接複製到視圖中。若是二者不同,那麼場景會被縮放以適合視圖。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縮放模式

Sprite Kit中設置測試信息

本小節將講解在遊戲場景中的一些測試信息的設置,如FPS的設置、節點數的設置等。

1.設置場景中的FPS

遊戲運行時每秒所運行的幀數被稱爲Frames Per Second簡稱FPS。它和視頻同樣FPS越大,在屏幕上的視頻就愈來愈平滑,直到一個臨界點(大約是100FPS)。超過這個臨界點,再高的FPS都只是一個使人驚奇的數值,400FPS100FPS在人的視覺中幾乎沒有差異。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人!

相關文章
相關標籤/搜索