iOS -- SKScene类
SKScene類
| 繼承自 | SKEffectNode:SKNode:UIResponder:NSObject |
| 符合 | NSCoding(SKNode) NSCopying(SKNode) NSObject(NSObject) |
| 框架 | ?/System/Library/Frameworks/SpriteKit.framework |
| 可用性 | 可用于iOS 7.0或者更晚的版本 |
| 聲明于 | SKScene.h |
| 參考指南 | Sprite Kit Progamming Guide |
?
概覽
?
| 重要提示:這是一個初步的API或者開發(fā)技術文檔。雖然已經(jīng)審閱了本文檔的技術準確性,但是它不是最終的版本。本機密信息僅適用于蘋果開發(fā)者計劃的注冊會員。蘋果提供這些機密信息來幫助你采用這些技術和編程接口。此信息如果有變更,根據(jù)本文檔實現(xiàn)的軟件應使用操作系統(tǒng)軟件和最終文檔測試。新版本的文檔可能會擁有新的API或者技術。 |
?
一個SKScene實例表示一個游戲中的場景。一個場景節(jié)點通常是節(jié)點樹中的根節(jié)點。節(jié)點樹中的其他節(jié)點負責提供游戲內(nèi)容,場景節(jié)點則負責渲染和顯示。要顯示一個場景,你需要先將它present到一個SKView實例中。
一個場景通過以下的處理來計算內(nèi)容
1.場景調(diào)用update:方法。
2.場景執(zhí)行其子節(jié)點的動作。
3.場景調(diào)用didEvaluateActions方法。
4.場景執(zhí)行加入到場景中的物理體的物理模擬。
5.場景調(diào)用didSimulatePhysics方法。
子類節(jié)點
有時會創(chuàng)建場景類的子類。在子類場景中,要創(chuàng)景子類場景的內(nèi)容以及執(zhí)行邏輯。
方法
初始化一個場景
?
| + sceneWithSize: |
?
創(chuàng)建并返回一個新的場景實例。
+ (SKScene *)sceneWithSize:(CGSize)size
?
| 參數(shù) | size:場景的大小 |
| 返回值 | 一個新的場景實例 |
?
論述
這個類方法創(chuàng)建一個新的場景并調(diào)用它的initWithSize:方法初始化這個場景。
?
?
| - initWithSize |
?
初始化一個新的場景實例。
- (id)initWithSize:(CGSize)size
?
| 參數(shù) | size:場景的大小 |
| 返回值 | 一個新的初始化好的場景實例 |
?
論述
這是類方法指定的初始化方法。
轉變視圖和場景的坐標系
?
?
| - convertPointFromView: |
?
將視圖坐標系轉成場景坐標系。
- (CGPoint)converPointFromView:(CGPoint)point
?
| 參數(shù) | point:視圖坐標系中的一個點 |
| 返回值 | 這個點在場景坐標系中的位置 |
?
論述
在調(diào)用該方法之前,場景必須已經(jīng)被加到視圖中了。
?
?
| - convertPointTOView: |
?
將場景坐標系轉成視圖坐標系。
- (CGPoint)converPointToView:(CGPoint)point
?
| 參數(shù) | point:場景坐標系中的一個點 |
| 返回值 | 這個點在視圖坐標系中的位置 |
?
論述
在調(diào)用該方法之前,場景必須已經(jīng)被加到視圖中了。
改變場景的大小
?
?
| - didChangeSize: |
?
當場景大小發(fā)生改變時調(diào)用該方法。
- (void)didChangeSize:(CGSize)oldSize
?
| 參數(shù) | oldSize:場景的原大小 |
| 返回值 | ? |
?
論述
這個方法通常會被子類重寫。
檢測場景的彈出改變。
?
?
| - willMoveFromView: |
?
該方法會在場景移出視圖之前調(diào)用。
- (void)willMoveFromView:(SKView *)view
?
| 參數(shù) | view:持有該場景的視圖 |
| 返回值 | ? |
?
論述
這個方法通常會被子類重寫。
?
?
| - didMoveToView: |
?
該方法會在場景彈到視圖上之后調(diào)用。
- (void)didMoveToView:(SKView *)view
?
| 參數(shù) | view:持有該場景的視圖 |
| 返回值 | ? |
?
論述
這個方法通常會被子類重寫。
執(zhí)行動畫循環(huán)
?
?
| - update: |
?
在場景中動作執(zhí)行之前需要執(zhí)行的更新。
- (void)update:(NSTimeInterval)currentTime
?
| 參數(shù) | currentTime:已經(jīng)過去的時間,保證單調(diào)遞增 |
| 返回值 | ? |
?
論述
不要直接調(diào)用這個方法,當場景加入到視圖中,并且不是暫停狀態(tài)時,它每一幀會被調(diào)用一次。你的場景子類應該重寫這個方法,并執(zhí)行一些需要的更新。
?
| - didEvaluateActions |
?
在場景中動作執(zhí)行之后需要執(zhí)行的更新。
- (void)didEvaluateActions
論述
不要直接調(diào)用這個方法,當場景加入到視圖中,并且不是暫停狀態(tài)時,它每一幀會被調(diào)用一次。你的場景子類應該重寫這個方法,并執(zhí)行一些需要的更新。
?
| - didSimulatePhysics |
?
在物理模擬執(zhí)行之后需要執(zhí)行的更新。
- (void)didSimulatePhysics
論述
不要直接調(diào)用這個方法,當場景加入到視圖中,并且不是暫停狀態(tài)時,它每一幀會被調(diào)用一次。你的場景子類應該重寫這個方法,并執(zhí)行一些需要的更新。
屬性
查看視圖相關屬性
?
| anchorPoint |
?
場景原點在視圖中的位置。
@property (atomic) CGPoint?anchorPoint
論述
指定場景的坐標位置。默認值為(0,0),表示場景在視圖矩形的左下角。
?
?
| scaleMode |
?
定義場景如何映射到視圖。
@property (atomic) SKSceneScaleMode?scaleMode
論述
場景的大小和彈它出來的視圖大小不相同是有可能的。該屬性定義了場景如何映射到視圖。詳細值參見Scene Scaling Modes部分。默認值為SKSceneScaleModeFill。
?
?
| view |
?
場景所在的視圖。只讀。
@property (atomic, weak, readonly) SKView *view
論述
要彈出場景,需要調(diào)用SKView類的presentScene:方法或者presentScene:transition:方法。
設置場景的背景色
?
| backgroundColor |
?
場景的背景色。
@property (atomic, retain) SKColor *backgroundColor
論述
默認值為一個灰色的顏色值(RGBA0.15,0.15,0.15,1.0)。
改變場景的大小
?
?
| size |
?
場景的大小。
@property (atomic) CGSize *size
場景中運行的物理世界
?
?
| physicsWorld |
?
場景中的物理世界。
@property (atomic, readonly) SKPhysicsWorld *physicsWorld
論述
所有的場景自動模擬添加物理體的節(jié)點的物理特性。通過這個屬性可以獲取場景的全局物理屬性,比如重力加速度。
常量
決定場景的彈出模式
typedef NS_ENUM(NSInteger,
SKSceneScaleMode){
SKSceneScaleModeFill,
SKSceneScaleModeAspectFill,
SKSceneScaleModeAspectFit,
SKSceneScaleModeResizeFill
}
?
?
| SKSceneScaleModeFill | 場景的每個軸獨立縮放,場景完全映射到視圖中 |
| SKSceneScaleModeAspectFill | 場景中每個軸使用相同的縮放因子,保證視圖被完全填充,場景可能被剪裁 |
| SKSceneScaleModeAspectFit | 場景中每個軸使用相同的縮放因子,保證整個場景可見 |
| SKSceneScaleModeResizeFill | 場景不縮放,場景自動調(diào)整大小以適應視圖 |
總結
以上是生活随笔為你收集整理的iOS -- SKScene类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab二元一次方程求解_2-函数的
- 下一篇: java gb13000 ucs2_采用