一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

蘋(píng)果官方《Sprite Kit Programming Guide》翻譯

 wintelsui 2013-11-08
本文翻譯自Apple官方的《Sprite Kit Programming Guide》,原文在線地址>>。
初次在這里發(fā)翻譯貼,請(qǐng)大家多多指教。歡迎各種討論。
Sprite Kit編程指南(0):簡(jiǎn)介  
簡(jiǎn)介
關(guān)于Sprite Kit
重要提示:  這是API或開(kāi)發(fā)技術(shù)的一個(gè)初版文檔。雖然本文檔的技術(shù)準(zhǔn)確性已被審閱過(guò),但這還不是最終版本。這個(gè)蘋(píng)果的機(jī)密信息僅用于適用的蘋(píng)果開(kāi)發(fā)者計(jì)劃的注冊(cè)會(huì)員。蘋(píng)果公司提供這些機(jī)密信息來(lái)幫助你計(jì)劃采用本文所述的技術(shù)和編程接口。此信息如有變更,根據(jù)這份文檔實(shí)現(xiàn)的軟件,應(yīng)該用最終的操作系統(tǒng)軟件和最終文檔進(jìn)行測(cè)試。本文檔的新版本可能會(huì)與API或技術(shù)的未來(lái)種子一起提供。
Sprite Kit提供了一個(gè)圖形渲染(rendering)和動(dòng)畫(huà)的基礎(chǔ),你可以使用它讓任意紋理(textured)圖像或精靈動(dòng)起來(lái)。Sprite Kit采用的是傳統(tǒng)的渲染循環(huán),允許在渲染前處理每一幀的內(nèi)容。你的游戲確定場(chǎng)景的內(nèi)容,以及這些內(nèi)容如何在每幀中變化。Sprite Kit做的工作,就是有效地利用圖形硬件來(lái)渲染動(dòng)畫(huà)的幀。Sprite Kit優(yōu)化到本質(zhì)上允許對(duì)動(dòng)畫(huà)每一幀的任意修改。
Sprite Kit還提供了其他對(duì)游戲非常有用的功能,包括基本的聲音播放支持和物理模擬。此外,Xcode中提供了內(nèi)置的Sprite Kit支持,可以很容易地創(chuàng)建并在你的應(yīng)用程序中使用復(fù)雜的特效和紋理圖冊(cè)(atlases)。這種框架和工具的組合,使Sprite Kit對(duì)于游戲和其他需要類(lèi)似動(dòng)畫(huà)的應(yīng)用程序是一個(gè)很好的選擇。對(duì)于其他類(lèi)型的用戶界面動(dòng)畫(huà),使用Core Animation代替。
概覽
Sprite Kit在iOS和OS X可用。它使用主機(jī)設(shè)備提供的圖形硬件,以高幀速率復(fù)合2D圖像。Sprite Kit支持多種不同類(lèi)型的內(nèi)容,包括:
   無(wú)紋理或有紋理的矩形(精靈)
   文本
   任意基于CGPath的形狀
   視頻
Sprite Kit還提供了裁剪和其它特效的支持,允許你對(duì)全部或者部分內(nèi)容應(yīng)用這些效果。你可以在每一幀中活動(dòng)(animate)或者改變這些元素。你也可以附加物理主體到將這些元素,使他們正確地支持武裝和碰撞。
通過(guò)支持豐富的渲染基礎(chǔ)和處理所有低級(jí)別的工作來(lái)提交OpenGL的繪圖命令,Sprite Kit允許你全神貫注解決更高層次的設(shè)計(jì)問(wèn)題,并創(chuàng)造偉大的游戲。
在Sprite視圖內(nèi)由呈現(xiàn)場(chǎng)景繪制Sprite內(nèi)容
動(dòng)畫(huà)和渲染由SKView對(duì)象執(zhí)行。你在一個(gè)窗口在放置這個(gè)視圖,然后渲染它的內(nèi)容。因?yàn)樗且粋€(gè)視圖,所以它的內(nèi)容可以結(jié)合在視圖層次里的其它視圖。
你的游戲中的內(nèi)容會(huì)被組織成場(chǎng)景(scenes),用SKScene對(duì)象代表它們。場(chǎng)景包含精靈和其他要渲染的內(nèi)容。場(chǎng)景也實(shí)現(xiàn)了每幀的邏輯和內(nèi)容處理。在任何給定的時(shí)間內(nèi),視圖展示一個(gè)場(chǎng)景。只要一個(gè)場(chǎng)景被呈現(xiàn)出來(lái),它的動(dòng)畫(huà)和每幀邏輯會(huì)自動(dòng)執(zhí)行。
要使用Sprite Kit創(chuàng)建一個(gè)游戲,你要?jiǎng)?chuàng)建一個(gè)或多個(gè)的SKScene類(lèi)的子類(lèi)。例如,你可能會(huì)創(chuàng)建單獨(dú)的場(chǎng)景類(lèi),用來(lái)分別顯示主菜單、游戲畫(huà)面和游戲結(jié)束后顯示的內(nèi)容。你可以很容易地在你的窗口中使用一個(gè)單一的SKView對(duì)象并在不同場(chǎng)景之間進(jìn)行過(guò)渡。
有關(guān)章節(jié): “深入Sprite Kit”, “ 使用場(chǎng)景間過(guò)渡”, “ Sprite Kit最佳實(shí)踐”
節(jié)點(diǎn)樹(shù)定義出現(xiàn)在一個(gè)場(chǎng)景中的內(nèi)容
SKScene類(lèi)實(shí)際上是SKNode類(lèi)的后代。節(jié)點(diǎn)是所有內(nèi)容的基本構(gòu)建塊,而場(chǎng)景對(duì)象作為一個(gè)節(jié)點(diǎn)對(duì)象樹(shù)的根節(jié)點(diǎn)。場(chǎng)景及其后代決定哪個(gè)內(nèi)容被繪制以及它渲染的方式。
每個(gè)節(jié)點(diǎn)的位置在它的父節(jié)點(diǎn)定義的坐標(biāo)系中指定。節(jié)點(diǎn)的內(nèi)容的其他屬性也適用于它后代的內(nèi)容。例如,當(dāng)一個(gè)節(jié)點(diǎn)是旋轉(zhuǎn),所有它的后代也跟著旋轉(zhuǎn)。你可以使用節(jié)點(diǎn)樹(shù)建立一個(gè)復(fù)雜的圖像,然后通過(guò)調(diào)整最上層節(jié)點(diǎn)的屬性旋轉(zhuǎn)、縮放并融入整個(gè)圖像。
SKNode類(lèi)繪制任何東西,但它對(duì)后代應(yīng)用于它的屬性。每一種可繪制內(nèi)容 由Sprite Kit的不同子類(lèi)表示。其他的節(jié)點(diǎn)子類(lèi)不直接繪制內(nèi)容,但修改它們后代的行為。例如,你可以在場(chǎng)景中使用一個(gè)SKEffectNode對(duì)象對(duì)整個(gè)子樹(shù)應(yīng)用一個(gè)核心圖像過(guò)濾器(Core Image filter)。通過(guò)精確控制節(jié)點(diǎn)樹(shù)的結(jié)構(gòu),你確定節(jié)點(diǎn)的渲染順序,讓你可以在一個(gè)場(chǎng)景中布局(layer)復(fù)雜的圖形效果。
所有節(jié)點(diǎn)對(duì)象都是響應(yīng)者(responder)對(duì)象,派生(descending)自UIResponder或NSResponder,所以你可以繼承任何節(jié)點(diǎn)類(lèi)來(lái)創(chuàng)建接受用戶輸入的新類(lèi)。視圖類(lèi)自動(dòng)擴(kuò)展響應(yīng)鏈來(lái)包含場(chǎng)景的節(jié)點(diǎn)樹(shù)。
相關(guān)章節(jié): “使用精靈”, “ 構(gòu)建場(chǎng)景”, “ 使用其他節(jié)點(diǎn)類(lèi)型”
紋理保存可復(fù)用的圖形數(shù)據(jù)
紋理是用來(lái)渲染精靈的共享圖像。當(dāng)你需要對(duì)多個(gè)精靈應(yīng)用相同的圖像時(shí),總是使用紋理。通常你通過(guò)加載存儲(chǔ)在你的應(yīng)用程序bundle的圖像文件來(lái)創(chuàng)建紋理。然而,Sprite Kit也可以在運(yùn)行時(shí)從包括核心圖形圖像在內(nèi)的其他來(lái)源為你創(chuàng)建紋理,或者甚至渲染把節(jié)點(diǎn)樹(shù)成紋理。
Sprite Kit通過(guò)處理較低級(jí)別的代碼需求來(lái)加載紋理和并讓它們對(duì)圖形硬件可用,來(lái)簡(jiǎn)化了紋理的管理。紋理管理由Sprite Kit自動(dòng)管理。但是,如果你的游戲中使用了大量的圖像,你可以通過(guò)控制部分的過(guò)程來(lái)提高性能。首先,你通過(guò)提示Sprite Kit紋理很快就需要來(lái)做這個(gè)。
紋理圖冊(cè)是在你的游戲中一起使用的一組相關(guān)的紋理。例如,你可以使用一個(gè)紋理圖冊(cè)存儲(chǔ)讓一個(gè)角色活動(dòng)需要的所有紋理或渲染游戲設(shè)置級(jí)別的背景需要的所有瓷磚。Sprite Kit用紋理圖冊(cè)來(lái)提高渲染性能。
相關(guān)章節(jié): “使用精靈”
動(dòng)作在場(chǎng)景中由節(jié)點(diǎn)執(zhí)行
使用動(dòng)作(actions)讓場(chǎng)景的內(nèi)容動(dòng)起來(lái)。每一個(gè)動(dòng)作都是一個(gè)對(duì)象,由SKAction類(lèi)定義。你來(lái)告訴節(jié)點(diǎn)執(zhí)行動(dòng)作。然后,當(dāng)場(chǎng)景處理動(dòng)畫(huà)幀,動(dòng)作就被執(zhí)行。有些動(dòng)作在一幀動(dòng)畫(huà)內(nèi)完成,而另一些在完成前應(yīng)用變化于多幀動(dòng)畫(huà)。動(dòng)作最常見(jiàn)的用途是改變節(jié)點(diǎn)的屬性。例如,你可以創(chuàng)建動(dòng)作來(lái)移動(dòng)、縮放或旋轉(zhuǎn)節(jié)點(diǎn),或使其透明。然而,動(dòng)作也可以更改節(jié)點(diǎn)樹(shù)、播放聲音、甚至是執(zhí)行自定義代碼。
動(dòng)作是非常有用的,但你也可以組合動(dòng)作來(lái)創(chuàng)建更復(fù)雜的效果。你可以創(chuàng)建一組同時(shí)運(yùn)行或順序運(yùn)行的動(dòng)作。你可以讓動(dòng)作自動(dòng)重復(fù)。
場(chǎng)景中也能執(zhí)行自定義的每幀處理。覆蓋你的場(chǎng)景子類(lèi)的方法來(lái)執(zhí)行額外的游戲任務(wù)。例如,如果一個(gè)節(jié)點(diǎn)需要每幀移動(dòng),你可能會(huì)直接每幀地調(diào)整其屬性而不是使用一個(gè)動(dòng)作來(lái)這樣做。
相關(guān)章節(jié): “添加操作到節(jié)點(diǎn)”, “ 高級(jí)場(chǎng)景處理”
添加物理主體和關(guān)節(jié)來(lái)在場(chǎng)景中模擬物理
雖然你可以控制場(chǎng)景中的每一個(gè)節(jié)點(diǎn)的確切位置,你經(jīng)常想這些節(jié)點(diǎn)互相交流、碰撞并在這個(gè)過(guò)程中告知速度的變化。你可能還需要模擬重力和其他形式的加速度,這些都不在動(dòng)作系統(tǒng)中處理的。要做到這一點(diǎn),你可以創(chuàng)建物理主體(SKPhysicsBody),并將它們附加到你場(chǎng)景中的節(jié)點(diǎn)上。每個(gè)物理主體由形狀、尺寸質(zhì)量和其他物理特性定義。
當(dāng)場(chǎng)景中包含物理主體,場(chǎng)景就在這些主體上模擬物理。一些勢(shì)力(forces),如重力和摩擦力,會(huì)自動(dòng)應(yīng)用。你也可以對(duì)物理主體調(diào)用方法來(lái)應(yīng)用自己的勢(shì)力。每個(gè)主體的加速度和速度會(huì)被計(jì)算,然后主體彼此碰撞。然后,模擬完成后,相應(yīng)的節(jié)點(diǎn)的位置和旋轉(zhuǎn)的被更新。
你物理主體的交互擁有精確的控制。你確定哪些主體被允許相互碰撞 并單獨(dú)決定哪些交互可以被你的應(yīng)用程序調(diào)用。這些回調(diào)允許你勾(hook)到物理模擬中創(chuàng)建其他的游戲邏輯。例如,在一個(gè)物理主體被另一個(gè)物理主體擊中時(shí),你的游戲可能會(huì)銷(xiāo)毀一個(gè)節(jié)點(diǎn)。
場(chǎng)景在一個(gè)附加的SKPhysicsWorld對(duì)象上定義了物理模擬的全局特性。你可以使用物理世界定義整個(gè)模擬的重力,定義模擬的速度,并在場(chǎng)景中查找物理主體。你還可以使用物理世界通過(guò)一個(gè)關(guān)節(jié)(SKPhysicsJoint)把物理主體連接在一起。連接的主體根據(jù)關(guān)節(jié)的類(lèi)型模擬在一起。
相關(guān)章節(jié): “模擬物理”
如何使用本文檔
閱讀“深入Sprite Kit”獲得實(shí)現(xiàn)Sprite Kit游戲的一個(gè)概述。然后通過(guò)其他章節(jié)學(xué)習(xí)關(guān)于Sprite Kit功能的細(xì)節(jié)。一些章節(jié)包含建議的練習(xí),以幫助你開(kāi)發(fā)你對(duì)Sprite Kit的理解。學(xué)習(xí)Sprite Kit的最好方法是實(shí)踐;把一些精靈放到場(chǎng)景中并實(shí)驗(yàn)它們!
最后一章,“Sprite Kit最佳實(shí)踐”,進(jìn)入更詳細(xì)的使用Sprite Kit設(shè)計(jì)游戲。
先決條件
在試圖使用Sprite Kit創(chuàng)建一個(gè)游戲之前,你應(yīng)該對(duì)應(yīng)用程序開(kāi)發(fā)的基礎(chǔ)知識(shí)相當(dāng)熟悉。
   在iOS上,參見(jiàn)今天開(kāi)始開(kāi)發(fā)iOS應(yīng)用程序。
   在OS X上,參見(jiàn)今天開(kāi)始開(kāi)發(fā)Mac應(yīng)用程序。
尤其的,你應(yīng)該熟悉以下概念:
   使用Xcode開(kāi)發(fā)應(yīng)用程序
   Objective-C語(yǔ)言,包括塊(blocks)支持
   視圖和窗口系統(tǒng)
雖然本指南展示了許多有用的創(chuàng)建游戲的技術(shù),它還不是一個(gè)完整的游戲設(shè)計(jì)或游戲開(kāi)發(fā)指南。
參見(jiàn)
當(dāng)你需要Sprite Kit框架的具體細(xì)節(jié)時(shí),參見(jiàn)SpriteKit框架參考。
關(guān)于如何使用Xcode對(duì)Sprite Kit的內(nèi)置支持的信息,參見(jiàn)紋理圖冊(cè)幫助和粒子發(fā)射器編輯器指南。
關(guān)于在SKSpriteNode類(lèi)的詳細(xì)說(shuō)明參見(jiàn)Sprite Tour。
要了解Sprite Kit中的物理系統(tǒng),參見(jiàn)SpriteKit物理碰撞。
要深入了解基于Sprite Kit的游戲參見(jiàn)代碼:Explained Adventure。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多

    91一区国产中文字幕| 高清国产日韩欧美熟女| 一区二区三区在线不卡免费| 国产精品午夜福利在线观看| 我想看亚洲一级黄色录像| 色婷婷人妻av毛片一区二区三区| 国产又黄又爽又粗视频在线| 亚洲清纯一区二区三区| 激情少妇一区二区三区| 亚洲国产成人久久一区二区三区| 99国产精品国产精品九九 | 国产欧美日韩综合精品二区| 欧美日韩国产自拍亚洲| 一区二区三区日韩经典| 欧洲一区二区三区蜜桃| 久久99青青精品免费观看| 少妇肥臀一区二区三区| 精品日韩中文字幕视频在线| 人妻一区二区三区多毛女| 亚洲午夜av一区二区| 我的性感妹妹在线观看| 五月婷婷欧美中文字幕| 国产又粗又猛又爽又黄的文字| 少妇人妻一级片一区二区三区 | 亚洲中文字幕三区四区| 亚洲少妇人妻一区二区| 中文字幕日韩精品人一妻| 欧美黑人在线一区二区| 国产精品视频一区二区秋霞| 国产日韩欧美一区二区| 国产肥妇一区二区熟女精品| 日韩中文无线码在线视频| 人妻内射精品一区二区| 国产午夜福利一区二区| 香港国产三级久久精品三级| 久热人妻中文字幕一区二区| 亚洲欧美日韩网友自拍| 亚洲欧美国产中文色妇| 国产伦精品一区二区三区高清版 | 青草草在线视频免费视频| 国产永久免费高清在线精品|