-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Objective-C和Sprite Kit游戲開發從入門到精通

( 簡體 字)
作者:曹化宇類別:1. -> 程式設計 -> 手機程式 -> iPhone
譯者:
出版社:清華大學出版社Objective-C和Sprite Kit游戲開發從入門到精通 3dWoo書號: 45980
詢問書籍請說出此書號!

缺書
NT售價: 295

出版日:1/1/2017
頁數:296
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787302453703
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

為什么要寫這本書
這是一個真實的故事。
兒時與兄弟們玩街機和FC游戲的場景仍歷歷在目,不知不覺中就玩到了20世紀90年
代。在學習和使用計算機過程中,發現除了能敲出自己的名字,還可以玩一些那么有吸引
力的游戲——海闊開空、千軍萬馬,數不清的戰斗!數不清的不眠之夜!玩果然是天性!
玩著玩著就想到,如果自己能開發游戲是一件多么酷的事情!于是開始了軟件開發之
旅,不知道有多少學習軟件開發的朋友是受到了游戲的影響!相信不止我一個。好吧,事
情沒那么簡單,學著學著就開始工作了,此時才發現,怎么在做ERP系統呢?……
打拼了幾年,終于有時間回到當初的夢想。但此時,游戲已不是計算機的專利了,智
能手機的興起,讓“游戲機”裝入口袋。很快,自己也小試了一下,使用Java ME開發了
一個俄羅斯方塊游戲,并在自己的Nokia E71上玩了很久,只是在家人的Nokia 5300中,顯
示效果完全不是一回事兒,Java ME版本問題,沒辦法解決!這段經歷的總結是,在移動
游戲開發方面,選擇Nokia算是選錯隊友了!
繼續選擇新隊友,首先,了解了一些平臺,特別是移動平臺,當然還有游戲開發框
架,有專用的,也有跨平臺的;最終,還是選擇了Apple朋友圈,原因是多方面的,或者
干脆說,喜歡做就做了,需要理由嗎?!
軟件開發,首先需要掌握一種編程語言,于是,Objective-C就來了,那時還沒Swift什
么事呢!換個角度講,到現在為止,Swift的每一次改變都會讓一些代碼罷工,成熟的工具
不應該是這樣的。也許,Swift 3.0以后會好起來,我們拭目以待吧。
再說游戲開發,一個好用的框架是必不可少的,是的,Sprite Kit就是這樣一個好用的
游戲開發框架。使用Sprite Kit開發游戲,我們不需要使用復雜的CG技術就可以創建出各種
游戲角色(比如,只需要一張圖片),也不需要復雜的計算就可以讓角色動起來(比如,
只需要一個簡單的動作類型)。簡單!易用!就是它了!當然,還有一個重要的因素,
Sprite Kit是Apple公司自己的游戲開發框架,所以,兼容性和技術支持等方面會更好,而
且,同時支持iOS和OS X系統。
學習、實踐、完成項目,在這個過程中,我都進行了大量的記錄,有Objective-C編程
語言方面的,有Sprite Kit應用方面的,當然也包括自己對技術應用和游戲開發的思考、理
解。有一天,我把這些資料整理了一下,驚奇地發現已經有了這么多內容,都可以成書了!

好的,被您猜中了,這就是本書形成的過程,也是我的游戲開發歷程。

那么,為什么考慮出版本書呢?原因很簡單,就是想為學習iOS 或OS X游戲開發的朋
友提供一份簡單、實用的學習和參考資料,分享游戲開發的經歷與樂趣。

本書特色

1. 簡單、實用
簡單,并不意味著本書的內容很少,正相反,一方面,本書對游戲開發的相關技術和
方法進行提煉,包括了在iOS和OS X系統中進行游戲開發的必要知識;另一方面,本書也
突出了知識的實用性,對內容深度和廣度都進行有效的把握。通過這些內容的學習,相信
讀者能夠打開游戲開發的大門。

2. 真正從零開始
學習本書,并不需要讀者有特殊的編程經歷,只要循序漸進,逐漸掌握書的內容,完
全可以開發出iOS或OS X游戲。

3. 輕松學習
無論是玩游戲,還是開發游戲,我都會提倡趣味性與娛樂性,學習雖然是一件很艱苦
的事情,但我們完全有理由去享受這一過程,特別對于游戲開發的學習過程。本書中,語
言和示例都會以輕松的、直觀的、有趣的方式來展現,希望大家也能夠感覺到,我們就是
在開心、輕松的聊天過程中來學習游戲開發的。

4. 理論與實踐相結合
對于每個示例,都有很強的針對性,一切為了游戲開發;針對各種技術,我們不但介
紹了基本的應用和實現,同時,討論了各種實際應用的場景,力求讓讀者能夠真正理解并
融合這些知識,并能夠應用到實際的游戲開發中。

5. 完整性
與很多介紹某種開發技術的圖書不同,本書并不是單一技術的手冊,而是包括了iOS
或OS X游戲開發的完整內容,從基本的代碼、Sprite Kit開發資源的應用,再到Game Center
排行榜、應用內購買等,這些內容完整地展示了游戲從開發到上架所需要的知識。

讀者對象

在這里,我們看看本書的內容都適合哪些朋友閱讀和使用。

.
游戲開發愛好者

.
iOS或OS X應用開發者


.
Sprite Kit開發者

如何閱讀本書

本書主要包括四個部分的內容:
第一部分介紹了如何使用Xcode和Objective-C語言編寫程序。
第二部分討論了Foundation框架中常用的開發資源,這些資源不但可以為游戲開發服

務,同樣也可以應用于各種類型的iOS或OS X應用開發。
第三部分討論了Sprite Kit在游戲開發中的應用。
第四部分討論了游戲開發相關的技術,如網絡狀態檢測、Game Center 排行榜、應用內

購買等。

如果是Apple環境開發新手,建議從第1章開始逐步學習;如果是一名經驗豐富的開發
者,可以根據實際需要選擇其中的內容閱讀;實際工作中,可以將本書作為參考手冊隨時
查閱。

閱讀本書的建議

.
對于開發初學者,建議逐章閱讀,并能夠親手實踐書中的示例代碼。
.
對于已經掌握Objective-C語言的讀者,可以根據需要閱讀相關的內容。
.
對于Foundation、Sprite Kit或常用功能實現部分,大家可以隨時參考,并根據實際

需要修改使用。

進一步學習建議

閱讀并掌握本書的內容以后,相信讀者已經掌握了Objective-C,并對iOS或OS X應用
有了一定的了解,特別是,應該可以開發出屬于自己的游戲了。
不過,我們也知道,開發一個大型游戲的知識絕不止書中這些內容,所以,完成本書
內容的學習以后,大家可以更進一步,以下是關于深入學習的一些建議:

.
無論是Foundation還是Sprite Kit或Store Kit框架,都值得我們深入學習和理解,
并能夠在應用中合理地使用。關于這些內容,建議大家能夠抽時間看一看官方文
檔。對于某些問題的眾多解決方案和技巧,能夠在學習和應用過程中主動思考,
并親手驗證它們。

.
如果需要進行跨平臺的游戲開發,建議大家了解至少一種框架,并能深入地學習
和應用。


.
Swift 是一種現代的編程語言,如果大家需要長期進行Apple 環境的開發工作,建議
學習并能夠熟練使用它。

勘誤和支持

由于作者水平有限、編寫時間倉促,書中難免會出現一些疏漏或不足之處,而讀者的
批評和指正,正是我們共同進步的強大力量,歡迎您通過清華大學出版社網站(www.tup.
com.cn)與我們聯系,同時,也歡迎大家直接與作者交流,作者的郵箱是chydev@163.com。

致謝

感謝出版社的編輯老師耐心的交流與指導,使得本書能夠順利與讀者見面。

感謝我的家人,他們承擔了大量的家務,容忍了我在家里的“懶惰”,為我創造了一
個溫暖的家、一個安心的工作環境,特別是我的孩子們,他們總是說“爸爸在工作,我不
打擾他”,而這些正是我快樂生活和努力工作的力量源泉。

謹以此書獻給我的家人,以及熱愛游戲、熱愛開發的朋友們!

曹化宇
2016年7月
內容簡介:

本書是一線程序員凝聚自己多年開發經驗的結晶之作,深入淺出地講解Objective-C語言、
Foundation框架、Sprite Kit框架,以及其他開發iOS和Mac游戲所需要的基礎知識,幫助讀者零基礎實踐
iOS和Mac游戲開發。

本書內容可以分為四個部分,第一部分(第1∼5章)介紹如何使用Xcode和Objective-C語言編寫程
序;第二部分(第6∼12章)討論Foundation框架中常用的開發資源,這些資源不但可以為游戲開發服
務,同樣也可以應用于各種類型的iOS或OS X應用開發;第三部分(第13∼18章)討論Sprite Kit在游戲
開發中的應用;第四部分(第19∼23章)討論游戲開發相關的技術,如網絡狀態檢測、Game Center排
行榜、應用內購買等。

本書內容安排合理,架構清晰,注重理論與實踐相結合,適合作為零基礎學習iOS和Mac游戲開發
的初學者的教程,也適合作為有一定編程基礎的程序員的參考手冊。
目錄:

第1章準備工作·····1

1.1本書內容················1

1.2使用Xcode··············2

1.3第一個Objective-C程序··················4

1.4獲取幫助················7

第2章Objective-C開發基礎·········8

2.1代碼文件················9

2.2注釋·12

2.3變量·12

2.4常量·13

2.5整數·15

2.5.1取值范圍················15

2.5.2算術運算················16

2.5.3NSLog()函數與格式化輸出·············17

2.5.4組合運算符·············17

2.5.5增量與減量運算·······18

2.5.6二進制與位運算·······18

2.6浮點數··················23

2.7布爾類型···············24

2.7.1BOOL類型··············24

2.7.2布爾運算················25

2.8字符·26

2.9指針·28

2.10自定義函數··········29

2.10.1返回值類型···········30

2.10.2函數名·················30

2.10.3參數30

2.10.4參數指針··············31

2.11static關鍵字··········32

2.12塊(block)··········33

2.13枚舉···················35

2.14結構···················37

2.15隨機數················38

2.16預處理················38

2.16.1#define和#undef指令39

2.16.2條件編譯指令········39

2.16.3#import指令···········40

第3章代碼流程控制·················41

3.1比較運算···············41

3.2條件語句···············42

3.2.1if語句42

3.2.2?:運算符·················43

3.3選擇語句···············44

3.4循環語句···············46

3.4.1for語句結構············46

3.4.2while語句結構·········47

3.4.3do-while語句結構·····47

3.4.4break語句···············48

3.4.5continue語句···········48

3.5goto語句與標簽······49

3.6異常處理···············49

第4章面向對象編程·················51

4.1面向對象編程基礎···51

4.2類與對象···············53

4.2.1接口部分················53

4.2.2實現部分················54

4.2.3創建對象(實例化)·55

4.2.4類的成員················56

4.3方法(任務)·········58

4.3.1創建方法················58

4.3.2description方法與NSLog()函數·········61

4.4屬性·61

4.4.1使用@proeprty和@synthesize指令·····62

4.4.2使用setter和getter方法···················63

4.5初始化方法············64

4.6繼承·65

4.6.1成員的訪問·············65

4.6.2重寫屬性和方法·······67

4.6.3繼承關系中的初始化·67

4.7分類·69

4.7.1命名分類················70

4.7.2匿名分類················71

4.8對象復制與傳遞······71

4.8.1對象的復制·············71

4.8.2對象作為參數··········72

4.9動態處理類和對象···72

4.9.1對象類型判斷··········72

4.9.2方法存在判斷··········73

4.9.3動態調用方法··········74

第5章協議·········75

5.1創建協議···············75

5.2實現協議···············76

5.3可選成員···············77

5.4實現多個協議·········78

5.5

對象深復制(實現NSCopying

協議)··················79

第6章數組、集合與字典···········82

6.1

C風格數組·············82

6.2

不可變數組(NSArray類型)·········84

6.2.1創建NSArray對象·····84

6.2.2數字對象(NSNumber類)·············84

6.2.3使用NSValue類········85

6.2.4數組成員操作··········86

6.2.5保存與載入·············87

6.3可變數組(NSMutableArray類型)··88

6.3.1創建NSMutableArray對象···············89

6.3.2添加成員················89

6.3.3刪除成員················90

6.3.4替換成員················90

6.4集合(Set)···········91

6.4.1不可變集合(NSSet類)················91

6.4.2可變集合(NSMutableSet類)·········92

6.5字典(NSDictionary)··················93

6.5.1創建字典對象··········93

6.5.2常用成員················93

6.5.3NSMutableDictionary類··················94

第7章字符串······96

7.1C風格字符串··········96

7.2不可變字符串(NSString類)·········97

7.2.1創建NSString對象·····97

7.2.2返回字符數量··········98

7.2.3截取子字符串和字符·98

7.2.4大小寫轉換·············99

7.2.5轉換為C風格字符串··99

7.2.6字符串比較與匹配··100

7.2.7轉換為數值···········101

7.2.8保存與讀取···········101

7.3

可變字符串(NSMutableString

類)···················102

7.3.1創建NSMutableString對象·············102

7.3.2NSMutableString常用成員·············102

7.4使用NSURL類······103

第8章本地化字符串················105

8.1判斷系統語言類型·105

8.2NSLocalizedString··106

8.3NSLocalizedStringFromTable·········107

8.4綜合應用·············108

第9章日期與時間···················109

9.1NSDate類············109

9.1.1獲取時間信息········110

9.1.2時間的計算和比較··110

9.2NSDateComponents類·················111

9.3NSCalendar類·······112

9.4時區與區域設置····113

9.4.1NSTimeZone類·······113

9.4.2NSDateFormatter類·114

9.4.3NSLocale類···········115

9.5封裝CDate類········115

9.5.1初始化方法···········117

9.5.2時間、區域和時區··118

9.5.3日期與時間數據·····119

9.5.4測試120

9.6獲取中國農歷信息·120

9.6.1初始化方法···········121

9.6.2年份與名稱···········122

9.6.3月份與名稱···········123

9.6.4日期與名稱···········124

9.6.5屬相125

9.6.6測試125

第10章文件與目錄·················127

10.1獲取系統信息·····127

10.1.1獲取文稿目錄(Documents)·······128

10.1.2獲取臨時目錄與GUID················128

10.1.3更多系統信息······129

10.2NSData與NSMutableData類········130

10.3使用NSFileManager類···············130

10.3.1文件或目錄是否存在·················131

10.3.2復制文件和目錄···131

10.3.3刪除文件和目錄···132

10.3.4移動、重命名文件和目錄···········133

10.3.5文件與目錄的屬性133

10.4文件操作···········134

10.4.1讀取文件內容······134

10.4.2寫入文件············134

10.4.3比較文件內容······135

10.4.4檢測文件讀寫權限135

10.5目錄操作···········135

第11章歸檔······137

11.1歸檔與解檔········137

11.1.1

實現NSCoding協議137

11.1.2

使用NSKeyedArchiver類和

NSKeyedUnarchiver類···············139

11.2利用歸檔復制對象···················140

第12章通知中心與對話框········142

12.1通知中心···········142

12.2OSX對話框········146

12.3iOS對話框··········147

12.3.1回顧UIAlertView類150

12.3.2使用UIAlertController類··············152

12.3.3iPad中的UIAlertController···········154

第13章SpriteKit基礎··············156

13.1第一個SpriteKit項目················156

13.1.1啟動界面············159

13.1.2視圖··················161

13.1.3創建場景············162

13.2iOS設備與系統信息··················163

13.2.1設備類型與iOS版本···················163

13.2.2

屏幕尺寸············164

13.2.3

封裝——創建CApp.h和CApp.m

文件··················165

13.3顏色·················167

13.4節點樹··············168

13.5CoreGraphics······171

13.5.1CGPoint結構········171

13.5.2CGSize結構·········172

13.5.3CGRect結構·········172

13.5.4CGRectContainsRect()函數··········172

13.5.5

CGRectContainsPoint()函數··········172

13.5.6

CGRectGetMidX()和CGRectGetMidY()

函數·········173

13.6坐標系··············173

13.6.1

位置(position)與錨點

(anchorPoint)····173

13.6.2

坐標轉換············174

13.7場景切換(SKTransition)·········174

13.8游戲循環···········176

13.9場景(SKScene)中顯示對話框··178

13.10Mac中的SpriteKit項目·············180

13.10.1項目初始化········180

13.10.2響應鼠標與鍵盤··181

13.10.3屏幕與尺寸········182

第14章精靈、紋理與角色控制···185

14.1SKSpriteNode類···185

14.1.1創建精靈節點······185

14.1.2NSBundle類·········187

14.1.3組合節點············188

14.2SKTexture類·······189

14.2.1截取紋理內容······189

14.2.2精靈動畫——翻滾的小行星·········191

14.2.3更多的小行星······191

14.3移動與碰撞········192

14.3.1場景初始化·········193

14.3.2碰撞檢測與游戲狀態·················197

14.4觸摸控制···········200

14.4.1觸摸響應方法······200

14.4.2控制太空船·········201

14.4.3單擊··················202

14.4.4手勢··················202

14.5Mac中的太空船···207

14.5.1處理鼠標操作······210

14.5.2處理鍵盤控制······212

14.5.3在update:方法中處理鍵盤控制·····213

第15章動作與聲音播放···········216

15.1基本動作類型·····217

15.1.1移動··················217

15.1.2尺寸與縮放·········218

15.1.3顯示和隱藏·········219

15.1.4旋轉··················220

15.1.5等待··················221

15.2動作的組合········221

15.2.1動作組···············221

15.2.2動作序列············222

15.2.3動作重復············222

15.2.4動畫動作············223

15.3聲音播放···········223

15.3.1使用動作播放聲音223

15.3.2使用AVAudioPlayer播放聲音········224

15.4動作的使用········224

15.4.1執行動作············225

15.4.2通過鍵(Key)執行動作············225

15.4.3取消所有動作······226

15.4.4判斷節點是否有動作執行···········226

15.4.5修改動作速度······226

第16章更多節點類型··············227

16.1SKShapeNode······228

16.1.1基本圖形節點······229

16.1.2根據路徑創建圖形節點··············230

16.2SKVideoNode······231

16.3SKCropNode·······232

16.4SKEffectNode······233

16.5SKEmitterNode與粒子效果·········234

16.5.1在Xcode中創建粒子··················234

16.5.2下雪場景············235

16.5.3模擬爆炸············236

16.5.4SKEmitterNode類·238

16.6節點的組合········240

第17章SpriteKit游戲常用算法···242

17.1兩點距離···········242

17.2碰撞測試···········243

17.3角度·················245

17.4視線·················246

17.5躲避障礙物········249

第18章綜合測試——Mac版

坦克大戰251

18.1場景初始化········252

18.1.1創建坦克············254

18.1.2創建敵人············254

18.1.3創建巖石············255

18.2坦克的操作········255

18.2.1坦克的動作·········256

18.2.2鼠標和鍵盤控制···257

18.2.3自動執行············258

18.3敵人的AI···········259

18.4處理已發射炮彈··261

18.5自己動手···········262

第19章加速計與陀螺儀···········263

19.1自動響應···········264

19.2調用數據···········267

19.3游戲控制方法小結···················269

19.3.1觸摸屏···············269

19.3.2鍵盤與鼠標·········270

第20章網絡狀態271

20.1檢測網絡狀態·····271

20.2監視網絡狀態·····272

第21章GameCenter排行榜·····274

21.1配置排行榜········274

21.2在應用中處理排行榜················275

21.2.1GameCenter登錄狀態················275

21.2.2提交成績············277

第22章應用內購買·················280

22.1準備測試用戶和設備················280

22.2創建App內購買···281

22.3在項目中使用App內購買···········282

22.3.1檢測訪問限制與網絡·················282

22.3.2執行購買操作······285

22.3.3恢復已購項目······287

22.3.4在場景(SKScene)中執行購買操作···287

22.3.5在場景(SKScene)中執行恢復操作··290

第23章發布到AppStore··········292

23.1注冊開發者與設備···················292

23.2發布準備···········293

23.2.1應用圖標············293

23.2.2iOS應用截圖········294

23.2.3OSX應用截圖······295

23.2.4上傳應用············295

23.2.5項目審核············295

序: