Android 3D遊戲開發技術詳解與典型案例

Android 3D遊戲開發技術詳解與典型案例

《Android 3D遊戲開發技術詳解與典型案例》是2011年出版的圖冊,作者是吳亞峰、蘇亞光。該書結合真實案例介紹Android平台下 OpenGL ES基本技術的使用及3D遊戲開發的完整流程。

基本介紹

  • 書名:Android 3D遊戲開發技術詳解與典型案例
  • 作者:吳亞峰、蘇亞光
  • ISBN:9787121132636
  • 頁數:689
  • 定價:89.00
  • 出版社:電子工業出版社
  • 出版時間:2011-6-1
  • 裝幀:平裝
  • 開本:16開
編輯推薦,內容簡介,前 言,本書特點,作者簡介,目 錄,

編輯推薦

目前市面上的Android技術書籍還比較少,Android 3D遊戲開發的書籍更是沒有。因此,在現在市面上,Android遊戲開發的書籍特別是Android 3D遊戲開發的書籍還是有相當大的市場需求。
《Android3D遊戲開發技術詳解與典型案例》既介紹了Android 3D遊戲開發中必知必會的基礎知識,同時通過7個真實案例向讀者介紹Android 3D遊戲的完整開發步驟,希望通過本書能夠使讀者儘快掌握Android 3D遊戲開發的相關知識。

內容簡介

《Android3D遊戲開發技術詳解與典型案例》主要以Android平台下3D遊戲的開發為主題,並結合真實的案例向讀者詳細介紹了OpenGL ES的基礎知識及3D遊戲程式開發的整個流程。
全書分為兩篇共22章,第一篇以簡單易懂的實例為依託,詳細介紹了OpenGL ES各方面的基礎知識,第二篇則對7個真實案例的開發步驟進行了詳細的介紹,逐步向讀者講解Android 3D遊戲的真實開發過程,同時原始碼中還包含了詳細的注釋,以儘量幫助讀者掌握代碼中的每一個細節,儘快掌握Android 3D遊戲開發。
本書的講述由淺入深,從Android平台下3D遊戲開發套用的基礎知識到開發大型遊戲程式,結構清晰、語言簡潔,非常適合初學者和進階開發者閱讀參考。
《Android3D遊戲開發技術詳解與典型案例》的講述由淺入深,從Android平台下3D遊戲開發套用的基礎知識到開發大型遊戲程式,結構清晰、語言簡潔,非常適合初學者和進階開發者閱讀參考。

前 言

為什麼要寫一本這樣的書
在最近幾年裡,移動通信和網際網路成為當今世界發展最快、市場潛力最大、前景最誘人的兩大業務。它們的增長速度是任何預測家都未曾預料到的。迄今,全球移動用戶已超過15億,網際網路用戶也已逾7億,中國移動通信用戶總數超過3.6億,網際網路用戶總數則超過1億。移動網際網路正逐漸滲透到人們生活、工作的各個領域。
在移動網際網路的使用量方面,iPhone和Android已超過面市較早的智慧型手機平台。據comScore對蘋果套用軟體店(Apple App Store)一份全面的研究報告中顯示,人們在iPhone和iPod touch上使用最多的軟體是遊戲。其中,遊戲軟體中70%~75%為3D遊戲軟體。
然而,2011年市面上的Android技術書籍還比較少,Android 3D遊戲開發的書籍更是沒有(包括外文版的也沒有)。因此,在市面上,Android遊戲開發的書籍特別是Android 3D遊戲開發的書籍還是有相當大的市場需求。
本書既介紹了Android 3D遊戲開發中必知必會的基礎知識,同時通過7個真實案例向讀者介紹Android 3D遊戲的完整開發步驟,希望通過本書能夠使讀者儘快掌握Android 3D遊戲開發的相關知識。

本書特點

1. 內容飽滿,由淺入深
本書內容既包括Android 3D遊戲開發的基礎知識,也有項目編程的實用技巧,同時還提供了多個真實案例供讀者學習。本書在知識的層次上由淺入深,使讀者可以從Android 3D遊戲開發的門外漢平穩、快速地步入Android 3D遊戲開發的殿堂。
2. 結構清晰、語言簡潔
本書中所有案例都是按照筆者的實際開發過程進行介紹的,同時也是按照真實項目的開發流程進行的,結構清晰、語言簡潔、便於實際練習,同時為了幫助讀者更好地理解相關知識點,全書穿插著很多實用技巧及溫馨提示。
3. 實用超值的光碟
為了幫助讀者更好地掌握與實踐Android 3D遊戲的開發,本書附贈DVD光碟,其中包括案例的多媒體視頻、電子教案(PPT)和實例原始碼等。
內容導讀
本書共分兩篇,第一篇介紹了Android 3D遊戲開發的基礎知識,主要對OpenGL ES的相關內容進行了介紹。
章 名主 要 內 容
第1章 英雄還看今朝—Android簡介本章介紹了市場上主流的手機平台,同時也分析了未來手機平台的發展趨勢及Android平台的前景
第2章 數風流人物—當前流行遊戲類型簡介本章以分類的方式簡要地介紹了當前流行的遊戲的玩法,遊戲的視覺效果,遊戲的設計及《仙劍》等著名遊戲的歷史
第3章 不積跬步,無以至千里—遊戲開發基礎知識本章初步介紹了遊戲開發的基礎知識
第4章 千里之行,始於足下—3D開發基礎知識本章介紹了3D開發中的基礎知識,包括OpenGL ES的介紹及OpenGL ES中繪製模型的原理,並通過點、線和三角形的繪製介紹了OpenGL ES中模型的幾種繪製方式。最後介紹了3D場景中常用的兩種投影方式,並通過例子比較了這兩種投影的區別
第5章 願君多採擷,此物最相思—光照效果的開發本章介紹了光照的基礎知識,包括環境光、散射光及鏡面光
第6章 為伊消得人憔悴——紋理映射本章主要介紹了紋理的基礎知識,以及紋理的不同拉伸方式和紋理過濾高級技術,從繪製三角形開始到繪製地月系,可能會經歷很長時間,但是這對以後的學習是有幫助的
第7章 海闊憑魚躍,天高任鳥飛—3D基本形狀的構建在本章中介紹了圓柱體、圓錐體、圓環、拋物面、雙曲面和螺旋面在OpenGL ES中的渲染方法。這些基本形狀在3D世界中套用廣泛,在構造一些複雜物體時,經常會運用這些基本形狀來進行拼裝組合
第8章 執子之手,與子偕老—坐標變換本章介紹了坐標變換的套用。繪製3D場景的過程,主要是旋轉和平移操作的組合,通過合理的堆疊操作,就比較容易繪製出所需的3D場景
第9章 孤帆遠影碧空盡—攝像機與霧特效在本章中,首先對攝像機及其配置做了介紹。攝像機在3D編程中至關重要,沒有正確的配置,攝像機可能不能獲得想要的場景效果。然後對霧特效做了具體介紹,套用霧特效可以使場景更加逼真,並且可以減少場景渲染量來提高性能
第10章 假作真時真亦假—混合本章主要為讀者介紹了混合,從混合的背景知識到如何配置源因子和目標因子。在介紹源因子和目標因子的時候,向讀者介紹了一些預定義常量和一些常用的組合方式,以及如何啟用混合
第11章 驀然回首,那人卻在燈火闌珊處—3D高級技術本章主要為讀者介紹了3D的一部分高級技術。每一項技術通過講解其原理和案例,使讀者對3D高級技術有一定的了解
第12章 心有靈犀一點通—感測器在本章中,向讀者介紹了Android中感測器的相關知識。包括感測器的種類、配置,並且著重介紹了姿態感測器的套用
第13章 千錘萬鑿出深山—遊戲中的數學與物理在本章中對3D遊戲中可能會用到的數學及物理知識進行了簡單的介紹,這在3D遊戲開發中是相當重要的。遊戲中的核心算法,基本上都要用到數學和物理知識。一款遊戲的性能很大程度上取決於遊戲設計的算法
第14章 山舞銀蛇,原馳蠟象—AI基本理念本章主要介紹了AI、AI引擎的基本組成與設計,以及遊戲AI中圖的搜尋和模糊邏輯,其中遊戲AI中圖的搜尋為本章的重點。在本章中詳細介紹了5種算法的原理與實現
第15章 獨上高樓,望盡天涯路—開發小秘籍本章介紹了地圖設計器、多鍵技術、虛擬鍵盤、查找表技術、狀態機、AABB邊界框、穿透效應、拾取技術,以及天空盒和天空穹在OpenGL ES中的套用
第二篇以7個比較大的案例來說明Android平台下3D遊戲的開發流程,通過這7個案例的講解,讀者對3D遊戲的開發將會有更深層次的理解。
章 名主 要 內 容
第16章 體育類遊戲——《瘋狂投籃》本章介紹了Android 3D遊戲《瘋狂投籃》的開發。通過該案例向讀者介紹了在Android平台下進行3D遊戲開發的相關知識和基本流程,並對遊戲開發中的編程技巧進行了介紹,並主要介紹了籃球與地面、牆面及籃框的碰撞檢測及運動動畫的實現方法
第17章 益智類遊戲——《旋轉積木》本章介紹了Android 3D遊戲《旋轉積木》的開發。主要介紹了積木旋轉的不同狀態的實現方法和地圖設計器的套用
第18章 休閒類遊戲——《摩天大樓》本章介紹了Android 3D遊戲《摩天大樓》的開發。主要介紹了樓層與樓層之間的銜接與碰撞及掉落後翻轉動畫的實現
第19章 動作類遊戲——《3D空戰》本章介紹了Android 3D遊戲《3D空戰》的開發。主要介紹了飛機的構造方法和我方戰機與敵方戰機的操控及動畫實現
第20章 桌面類遊戲——《激情檯球》本章介紹了Android 3D遊戲《激情檯球》的開發。主要介紹了檯球與檯球的碰撞檢測實現、檯球與球桌的碰撞檢測實現和進球的判定實現
第21章 射擊類遊戲——《搶灘登入》本章介紹了Android 3D遊戲《搶灘登入》的開發。主要運用了灰度圖生成技術並且主要介紹了坦克運動的實現方法及炮彈碰撞檢測的實現
第22章 競技類遊戲——《鄉村飆車》本章介紹了Android 3D遊戲《鄉村飆車》的開發。主要介紹了運用分層繪製和拼接繪製的策略進行場景的最佳化繪製,並且對場景部件進行了分類控制
本書面向的讀者
本書的內容詳細,且幾乎涵蓋了Android 3D遊戲開發所有相關的技術,並向讀者介紹了真實項目的開發流程,主要面向以下讀者。
Android的初學者
本書詳細介紹了OpenGL ES的基礎知識,並對Android 3D遊戲程式的開發進行了介紹。作為一名Android的初學者,通過本書的學習可以快速全面地掌握Android 3D遊戲開發的相關知識,穩健地步入Android 3D遊戲開發人員的行列。
有一定Android基礎且希望學習Android 3D遊戲開發的讀者
有一定Android基礎的讀者通過閱讀本書的前半部分便可快速掌握OpenGL ES的基礎知識,然後通過7個真實案例的學習迅速掌握Android平台下應用程式的開發。
在職的開發人員
本書中的案例都是作者精心挑選的,其中涉及的相關知識均是作者多年來積累的編程經驗及心得體會。具有一定開發經驗的在職開發人員可以通過本書的學習進一步鞏固OpenGL ES的基礎知識,並迅速成為高級3D遊戲開發人員。

作者簡介

吳亞峰,本科畢業於北京郵電大學,後留學澳大利亞臥龍崗大學取得碩士學位,1998年開始從事Java套用的開發,有10多年的Java開發與培訓經驗。主要的研究方向為Open GL ES、手機遊戲、Java EE、搜尋引擎,同時為手機遊戲、Java EE獨立軟體開發工程師,併兼任百納科技Java培訓中心首席培訓師。從2000年來為數十家著名企業培養了上千名軟體開發人員,曾編寫過《Java SE6.0編程指南》、《Java程式設計師職場全攻略——從小工到專家》、《Android2.0遊戲開發實戰寶典》、《Android核心技術與實例詳解》等多本暢銷技術書籍。2008年初開始關注Android平台下的套用開發,並開發出一系列優秀的Android應用程式與遊戲。
蘇亞光,哈爾濱理工大學碩士,有軟體領域8年的從業經歷,在軟體開發和計算機教學方面有著豐富的經驗。早期主要從事底層軟體的設計與開發工作,現主要從事ARM平台下嵌入式程式的設計、開發等方面的工作。同時,在SOA領域也做了很多有益的工作。
另外,昊燃、方振宇、陳冠佐、傅奎、陳勤、梁洋洋、畢夢飛、陳慶、柴相花、陳非凡、陳華、陳嵩、承卓也參與了本書的編寫。在此表示感謝!
致謝
本書在編寫過程中得到了唐山百納科技有限公司Java培訓中心的大力支持,同時孫佳佳、李光正、蔣召志、鄭安、田永宏、李建寶、王海峰及作者的家人為本書的編寫提供了很多幫助,在此表示衷心的感謝!
由於編者的水平和學識有限,且書中涉及的知識較多,難免有疏漏之處,敬請廣大讀者朋友批評指正,並多多提出寶貴意見。
編者

目 錄

第一篇 必知必會的基礎知識
第1章 英雄還看今朝——Android簡介20
1.1 群雄割據的手機市場20
1.1.1 手機市場的兩顆新星20
1.1.2 手機作業系統的5大元老21
1.2 Android的未來及特點22
1.2.1 得中國市場者得天下22
1.2.2 全新的概念帶來全新的體驗22
1.3 Android開發環境的搭建22
1.3.1 SDK的安裝及環境配置22
1.3.2 Eclipse集成開發環境的搭建23
1.3.3 模擬器的創建和運行24
1.4 第一個Android應用程式的開發25
1.4.1 第一個Android程式26
1.4.2 Android應用程式的調試27
1.5 Android應用程式運行的內部機制29
1.5.1 Android應用程式的項目結構30
1.5.2 Android 應用程式的系統架構31
1.5.3 Android 應用程式框架32
1.5.4 Android 運行時32
1.5.5 系統庫33
1.5.6 Linux核心34
1.6 本章小結34
第2章 數風流人物——當前流行遊戲類型簡介35
2.1 AVG冒險遊戲35
2.1.1 遊戲玩法35
2.1.2 視覺效果35
2.1.3 遊戲設計36
2.2 PZL益智類遊戲36
2.2.1 遊戲玩法36
2.2.2 視覺效果37
2.2.3 遊戲設計37
2.3 ACT動作遊戲38
2.3.1 歷代遊戲介紹38
2.3.2 未來動作遊戲的發展39
2.4 RPG角色扮演類遊戲40
2.4.1 歷代遊戲介紹40
2.4.2 Android平台遊戲移植42
2.5 STG射擊類遊戲43
2.5.1 遊戲的分類43
2.5.2 遊戲的玩法44
2.5.3 遊戲設計44
2.6 FPS第一人稱視角射擊遊戲44
2.6.1 遊戲玩法44
2.6.2 視覺效果45
2.6.3 遊戲設計45
2.7 SLG策略遊戲46
2.7.1 遊戲的玩法46
2.7.2 視覺效果46
2.7.3 遊戲設計47
2.8 SPT體育類遊戲47
2.8.1 遊戲的玩法47
2.8.2 視覺效果47
2.8.3 遊戲設計47
2.9 本章小結48
第3章 不積跬步,無以至千里—遊戲開發基礎知識49
3.1 遊戲中的聲音49
3.1.1 迅雷不及掩耳的即時音效49
3.1.2 一個即時音效的例子50
3.1.3 背景音樂播放技術53
3.1.4 簡單音樂播放器實現55
3.2 手機中的資料庫——SQLite59
3.2.1 SQLite資料庫簡介59
3.2.2 SQLite資料庫的基本操作60
3.2.3 SQLite運算元據庫的簡單套用60
3.3 檔案I/O64
3.3.1 輕鬆訪問SD卡64
3.3.2 訪問手機中的存儲資料夾67
3.3.3 讀取assets中的檔案68
3.4 存儲簡單數據的利器——Preferences70
3.4.1 Preferences簡介70
3.4.2 Preferences實現顯示上次登錄時間70
3.5 SURFACEView在遊戲中的使用72
3.5.1 SurfaceView簡單操作72
3.5.2 簡單動畫場景的繪製73
3.6 本章小結78
第4章 千里之行,始於足下—3D開發基礎知識79
4.1 OpenGL ES 簡介79
4.1.1 師出名門的OpenGL ES79
4.1.2 三角形組成的世界80
4.1.3 第一個OpenGL ES三角形82
4.2 不同的繪製方式87
4.2.1 點和線的繪製87
4.2.2 索引法繪製三角形93
4.2.3 頂點法繪製三角形101
4.3 不一樣的投影,不一樣的世界103
4.3.1 正交投影103
4.3.2 透視投影104
4.3.3 兩種投影的比較105
4.3.4 近大遠小的原理112
4.4 本章小結114
第5章 願君多採擷,此物最相思——光照效果的開發115
5.1 五彩繽紛的源泉——光源115
5.1.1 光源的開啟及關閉115
5.1.2 設定光源的數量116
5.1.3 定向光117
5.1.4 定位光118
5.2 光源的顏色119
5.2.1 環境光119
5.2.2 散射光120
5.2.3 鏡面反射光121
5.3 材料反光屬性的法官——法向量及材質121
5.3.1 法向量的作用121
5.3.2 光照的開啟及關閉例子122
5.3.3 物體的材質128
5.3.4 設定光源數量的例子128
5.4 兩個物體發光的例子132
5.4.1 定位光例子的實現132
5.4.2 自發光物體加運動光源的實現135
5.4.3 MySurfaceView.java詳解137
5.5 面法向量與點平均法向量143
5.5.1 面法向量的套用143
5.5.2 點平均法向量的套用145
5.6 本章小結146
第6章 為伊消得人憔悴—紋理映射147
6.1 3D世界的花衣——紋理貼圖147
6.1.1 指定紋理147
6.1.2 分配紋理坐標148
6.1.3 紋理貼圖三角形的實現149
6.1.4 紋理貼圖球體的構建153
6.2 使用紋理映射構建地月模型161
6.2.1 浩瀚星空中的地月系161
6.2.2 地月系的案例講解162
6.3 紋理拉伸170
6.3.1 紋理拉伸的原理與用途170
6.3.2 紋理拉伸案例講解172
6.4 紋理過濾175
6.4.1 最近點採樣175
6.4.2 線性紋理過濾176
6.4.3 mipmap:多重細節層176
6.5 視角的合理設定177
6.5.1 不同視角的3D世界177
6.5.2 合理視角案例講解178
6.6 本章小結180
第7章 海闊憑魚躍,天高任鳥飛—3D基本形狀的構建181
7.1 圓柱體181
7.1.1 圓柱體的幾何方程181
7.1.2 圓柱體的OpenGL ES實現182
7.2 圓錐體190
7.2.1 圓錐體的幾何方程190
7.2.2 圓錐體的OpenGL ES實現190
7.3 圓環193
7.3.1 圓環的幾何方程193
7.3.2 圓環的OpenGL ES實現193
7.4 拋物面196
7.4.1 拋物面的幾何方程196
7.4.2 拋物面的OpenGL ES實現197
7.5 雙曲面199
7.5.1 雙曲面的幾何方程199
7.5.2 雙曲面的OpenGL ES實現200
7.6 螺旋面202
7.6.1 螺旋面的幾何方程202
7.6.2 螺旋面的OpenGL ES實現203
7.7 本章小結205
第8章 執子之手,與子偕老——坐標變換206
8.1 理解坐標變換206
8.1.1 坐標變換的實質206
8.1.2 重要的堆疊操作207
8.2 縮放變換208
8.2.1 縮放變換原理分析208
8.2.2 OpenGL ES中的縮放變換實現208
8.3 平移變換211
8.3.1 平移變換理論概覽211
8.3.2 OpenGL ES中的平移變換實現212
8.4 旋轉變換213
8.4.1 旋轉變換原理概述213
8.4.2 OpenGL ES中的旋轉變換實現214
8.5 複合變換的簡單案例——地月系模型215
8.6 用複合變換模擬現實世界216
8.7 本章小結218
第9章 孤帆遠影碧空盡—攝像機與霧特效219
9.1 攝像機219
9.1.1 攝像機的簡介219
9.1.2 攝像機的設定220
9.2 霧特效221
9.2.1 霧特效的相關知識221
9.2.2 霧特效核心代碼222
9.3 攝像機與霧特效實現沙漠中的金字塔222
9.3.1 場景部件——四面體和太陽東升西落223
9.3.2 場景部件——星空類226
9.3.3 場景的創建229
9.3.4 攝像機Up方向變換效果232
9.4 本章小結233
第10章 假作真時真亦假——混合234
10.1 什麼是混合234
10.2 源因子和目標因子235
10.2.1 源因子和目標因子的默認實現方式235
10.2.2 預定義常量分析235
10.2.3 常用的組合方式236
10.2.4 啟用混合237
10.3 混合案例237
10.3.1 一個混合的簡單案例237
10.3.2 帶光暈和雲層效果的地月系模型241
10.3.3 濾光器中的世界245
10.4 本章小結250
第11章 驀然回首,那人卻在燈火闌珊處—3D高級技術251
11.1 標誌板251
11.1.1 標誌板技術概述251
11.1.2 標誌板的案例252
11.2 飄揚的旗幟254
11.2.1 旗幟飄動效果原理254
11.2.2 飄揚旗幟案例講解255
11.3 山地的生成技術257
11.3.1 灰度圖地形技術概述257
11.3.2 灰度圖生成3D地形258
11.3.3 地形場景效果的提升261
11.4 鏡像技術263
11.4.1 鏡像技術的簡介264
11.4.2 鏡像技術的實現265
11.4.3 鏡像技術的提升267
11.5 本章小結268
第12章 心有靈犀一點通——感測器269
12.1 感測器簡介269
12.1.1 磁場感測器簡介269
12.1.2 光感測器簡介269
12.1.3 距離感測器簡介270
12.1.4 加速度感測器簡介270
12.1.5 姿態感測器簡介271
12.1.6 SensorSimulator模擬器的配置273
12.2 感測器的數據傳輸276
12.2.1 加速感測器的數據傳輸276
12.2.2 姿態感測器的數據傳輸278
12.3 感測器實例——平衡球279
12.4 本章小結287
第13章 千錘萬鑿出深山——遊戲中的數學與物理288
13.1 必知必會的幾何知識288
13.1.1 三維笛卡兒坐標系288
13.1.2 向量288
13.1.3 加減法290
13.1.4 向量的點積291
13.1.5 向量的叉積291
13.1.6 空間平面的確定292
13.2 不可或缺的物理世界293
13.2.1 重力系統293
13.2.2 碰撞298
13.2.3 完全彈性碰撞299
13.2.4 帶有能量損失的彈性碰撞302
13.2.5 粒子系統303
13.3 本章小結311
第14章 山舞銀蛇,原馳蠟象—AI基本理念312
14.1 AI簡介312
14.1.1 什麼是智慧型312
14.1.2 什麼是遊戲AI312
14.2 AI引擎的基本組成與設計313
14.2.1 智慧型體313
14.2.2 處理機與感知314
14.2.3 導航314
14.3 遊戲AI中圖的搜尋315
14.3.1 深度優先搜尋315
14.3.2 廣度優先搜尋321
14.3.3 Dijkstra搜尋325
14.3.4 廣度優先A*算法的實現329
14.3.5 Dijkstra A*算法的實現332
14.3.6 A*與非A*算法之間的比較334
14.4 模糊邏輯336
14.4.1 普通集合336
14.4.2 模糊集合337
14.4.3 模糊語言變數339
14.4.4 模糊規則339
14.5 本章小結340
第15章 獨上高樓,望盡天涯路——開發小秘籍341
15.1 地圖設計器341
15.1.1 不可或缺的地圖設計器341
15.1.2 簡單的地圖設計器341
15.2 多鍵技術347
15.2.1 增加遊戲可玩度的多鍵技術347
15.2.2 多鍵技術的實例演示348
15.3 虛擬鍵盤350
15.4 查找表技術351
15.5 狀態機352
15.6 AABB邊界框354
15.6.1 AABB的表達方法355
15.6.2 計算AABB355
15.6.3 AABB與邊界球的比較356
15.6.4 球與球的碰撞357
15.6.5 兩個AABB的碰撞358
15.6.6 球與AABB的碰撞361
15.7 穿透效應363
15.8 拾取技術367
15.8.1 拾取技術的原理367
15.8.2 拾取技術的實現369
15.9 天空盒與天空穹377
15.9.1 天空盒的介紹377
15.9.2 天空穹的介紹380
15.10 本章小結382
第二篇 案 例 實 戰
第16章 體育類遊戲—《瘋狂投籃》384
16.1 遊戲的背景及功能概述384
16.1.1 背景概述384
16.1.2 功能簡介384
16.2 遊戲的策劃及準備工作388
16.2.1 遊戲的策劃388
16.2.2 Android平台下遊戲的準備工作388
16.3 遊戲的架構389
16.3.1 遊戲中用到的主要技術389
16.3.2 各類的簡要介紹389
16.3.3 遊戲的框架簡介391
16.4 遊戲公共類的設計與實現393
16.4.1 主類BasketballActivity的實現393
16.4.2 遊戲常量類的介紹396
16.5 遊戲選單界面類的設計與實現398
16.5.1 遊戲開始選單的框架設計398
16.5.2 遊戲開始選單的實現399
16.5.3 遊戲幫助、關於、載入及結束界面的設計與實現402
16.6 遊戲界面的設計與實現402
16.6.1 遊戲界面的框架設計402
16.6.2 遊戲界面的實現404
16.7 遊戲界面中主要場景的繪製及籃球運動407
16.7.1 遊戲中牆壁、地板、球和籃板等的繪製407
16.7.2 籃板的整體繪製409
16.7.3 籃球的運動實現410
16.8 遊戲界面的碰撞檢測及物體拾取413
16.8.1 籃球與籃框的碰撞檢測413
16.8.2 籃球與牆壁、地板和屋頂的碰撞檢測416
16.8.3 手機螢幕拾取技術418
16.9 遊戲的最佳化與改進419
第17章 益智類遊戲—《旋轉積木》421
17.1 遊戲的背景及功能概述421
17.1.1 背景概述421
17.1.2 功能簡介421
17.2 遊戲的策劃及準備工作424
17.2.1 遊戲的策劃424
17.2.2 Android平台下遊戲的準備工作424
17.3 遊戲的架構425
17.3.1 遊戲中用到的主要技術425
17.3.2 各類的簡要介紹425
17.3.3 遊戲的框架簡介427
17.4 地圖設計器的開發428
17.5 遊戲公共類的設計與實現431
17.5.1 主類MainActivity的實現431
17.5.2 遊戲常量類的介紹434
17.6 遊戲選單界面類的設計與實現437
17.6.1 遊戲開始選單的框架設計438
17.6.2 遊戲開始選單的實現439
17.6.3 遊戲幫助、關於、設定及勝利界面的設計與實現441
17.7 遊戲界面的設計與實現442
17.7.1 遊戲界面的框架設計442
17.7.2 遊戲觸控方法的實現443
17.7.3 遊戲界面的實現445
17.7.4 生成紋理ID的方法448
17.8 遊戲界面中主要場景的繪製449
17.8.1 遊戲中背景、移錶板、圖示的繪製449
17.8.2 地圖的繪製450
17.8.3 積木的繪製451
17.9 遊戲界面的動畫效果453
17.9.1 積木轉動的動畫效果453
17.9.2 遊戲失敗、獲勝的動畫效果457
17.10 遊戲界面的碰撞檢測458
17.11 遊戲的最佳化與改進460
第18章 休閒類遊戲—《摩天大樓》461
18.1 遊戲的背景及功能概述461
18.1.1 背景概述461
18.1.2 功能簡介461
18.2 遊戲的策劃及準備工作465
18.2.1 遊戲的策劃465
18.2.2 Android平台下遊戲的準備工作465
18.3 遊戲的架構466
18.3.1 遊戲中用到的主要技術466
18.3.2 各類的簡要介紹467
18.3.3 遊戲的框架簡介468
18.4 遊戲公共類的設計與實現469
18.4.1 主類GL_Demo的實現469
18.4.2 遊戲常量類的介紹474
18.5 遊戲選單界面類的設計與實現475
18.5.1 遊戲開始選單的框架設計475
18.5.2 遊戲開始選單的實現476
18.5.3 遊戲幫助、關於、設定、載入及勝利界面的設計與實現481
18.6 遊戲界面的設計與實現481
18.6.1 遊戲界面的框架設計481
18.6.2 遊戲界面的實現483
18.7 遊戲界面中主要場景的繪製487
18.7.1 遊戲中背景、地板、建築塊的繪製487
18.7.2 樹的繪製487
18.8 遊戲界面的碰撞檢測488
18.9 遊戲的最佳化與改進492
第19章 動作類遊戲—《3D空戰》493
19.1 遊戲的背景及功能概述493
19.1.1 背景概述493
19.1.2 功能簡介494
19.2 遊戲的策劃及準備工作496
19.2.1 遊戲的策劃496
19.2.2 Android平台下遊戲的準備工作497
19.3 遊戲的架構498
19.3.1 遊戲中用到的主要技術498
19.3.2 各類的簡要介紹498
19.3.3 遊戲的框架簡介500
19.4 遊戲公共類的設計與實現502
19.4.1 主類GL_Demo的實現502
19.4.2 遊戲常量類的介紹503
19.5 遊戲選單界面類的設計與實現504
19.5.1 遊戲選單的框架設計504
19.5.2 遊戲選單的實現506
19.5.3 遊戲幫助、關於、設定、載入及勝利界面的設計與實現509
19.6 遊戲界面的設計與實現509
19.6.1 遊戲界面的框架設計509
19.6.2 遊戲界面的實現511
19.7 遊戲界面中飛機的繪製513
19.8 遊戲中的運動執行緒和碰撞檢測515
19.9 遊戲的最佳化與改進525
第20章 桌面類遊戲—《激情檯球》527
20.1 遊戲的背景及功能概述527
20.1.1 背景概述527
20.1.2 功能簡介527
20.2 遊戲的策劃及準備工作531
20.2.1 遊戲的策劃531
20.2.2 Android平台下遊戲的準備工作532
20.3 遊戲的架構533
20.3.1 遊戲中用到的主要技術533
20.3.2 各類的簡要介紹533
20.3.3 遊戲的框架簡介535
20.4 網路端的開發536
20.4.1 伺服器的簡要介紹536
20.4.2 伺服器的代碼介紹537
20.4.3 客戶端執行緒的代碼介紹542
20.5 遊戲公共類的設計與實現545
20.5.1 主類MyActivity的實現545
20.5.2 遊戲常量類的介紹549
20.6 遊戲選單界面類的設計與實現551
20.6.1 遊戲開始選單的框架設計552
20.6.2 遊戲選單的動畫實現555
20.6.3 遊戲幫助、關於、設定及勝利等界面的設計與實現556
20.7 遊戲界面的設計與實現557
20.7.1 遊戲界面的框架設計557
20.7.2 遊戲中onKeyDown方法的實現558
20.7.3 遊戲界面的實現560
20.8 遊戲界面中主要場景的繪製563
20.8.1 儀錶板、地板的繪製563
20.8.2 檯球桌的繪製564
20.8.3 球的繪製566
20.9 遊戲中的碰撞檢測567
20.9.1 球與球檯邊角碰撞檢測的原理567
20.9.2 球與球碰撞檢測的原理569
20.9.3 球與球檯邊角碰撞檢測的實現570
20.9.4 球與球碰撞檢測的實現574
20.9.5 球運動執行緒的實現576
20.10 遊戲的最佳化與改進578
第21章 射擊類遊戲—《搶灘登入》579
21.1 遊戲的背景及功能概述579
21.1.1 背景概述579
21.1.2 功能簡介579
21.2 遊戲的策劃及準備工作583
21.2.1 遊戲的策劃583
21.2.2 Android平台下遊戲的準備工作583
21.3 遊戲的架構584
21.3.1 遊戲中用到的主要技術584
21.3.2 各類的簡要介紹585
21.3.3 遊戲的框架簡介588
21.4 遊戲公共類的設計與實現589
21.4.1 主類Activity的實現590
21.4.2 遊戲常量類的介紹594
21.5 遊戲選單界面類的設計與實現598
21.5.1 遊戲選單界面的框架設計598
21.5.2 遊戲選單界面的實現600
21.5.3 遊戲幫助、關於及結束界面的設計與實現604
21.6 遊戲界面的設計與實現605
21.6.1 遊戲界面的框架設計605
21.6.2 遊戲界面的實現607
21.7 遊戲界面中主要場景的繪製及實物運動613
21.7.1 遊戲中的繪製613
21.7.2 燈塔的整體繪製614
21.7.3 物體的運動實現616
21.8 遊戲中的碰撞檢測621
21.9 遊戲的最佳化與改進625
第22章 競技類遊戲—《鄉村飆車》627
22.1 遊戲的背景及功能概述627
22.1.1 背景概述627
22.1.2 功能簡介627
22.2 遊戲的策劃及準備工作631
22.2.1 遊戲的策劃631
22.2.2 Android平台下遊戲的準備工作632
22.3 遊戲的框架介紹634
22.3.1 遊戲中用到的主要技術634
22.3.2 各類的簡單介紹635
22.3.3 遊戲的框架介紹638
22.4 遊戲公共類的設計與實現640
22.4.1 主類Activity_GL_Racing的實現640
22.4.2 遊戲常量類的介紹645
22.5 遊戲選單類的設計與實現649
22.5.1 遊戲主選單的設計與實現650
22.5.2 遊戲載入界面的設計與實現651
22.5.3 遊戲歷史界面的設計與實現656
22.5.4 遊戲幫助、設定、關於、選擇等界面的設計與實現658
22.6 遊戲界面的設計與實現659
22.6.1 遊戲界面的框架設計659
22.6.2 遊戲界面的實現661
22.6.3 感測器套用與多點觸控技術665
22.7 遊戲界面中主要場景的繪製666
22.7.1 遊戲界面中場景的分層繪製及渲染最佳化667
22.7.2 遊戲界面中地圖賽道的生成與繪製669
22.7.3 場景部件的繪製671
22.7.4 遊戲中汽車的載入673
22.7.5 遊戲中樹的繪製技術677
22.7.6 場景中遊戲輔助部件的繪製679
22.8 遊戲中的碰撞檢測及行駛圈數判定681
22.8.1 汽車與公路部件的碰撞檢測683
22.8.2 汽車行駛圈數判定685
22.8.3 汽車與可碰撞部件的碰撞檢測及其動畫實現686
22.9 遊戲的最佳化與改進688

相關詞條

熱門詞條

聯絡我們