Java游戲開發(fā)實(shí)踐——Greenfoot編程快速入門
定 價(jià):59 元
叢書名:高等學(xué)校計(jì)算機(jī)基礎(chǔ)教育教材精選
- 作者:何青
- 出版時(shí)間:2018/8/1
- ISBN:9787302506560
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP317.6
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書是高校教師多年開發(fā)經(jīng)驗(yàn)的結(jié)晶之作,書中深入淺出地講解使用Greenfoot編程軟件進(jìn)行Java游戲開發(fā),幫助讀者快速掌握游戲設(shè)計(jì)的基本原理和方法,同時(shí)提高Java語言的編程能力。
本書內(nèi)容分為五篇:*篇介紹Greenfoot編程基礎(chǔ),包含Greenfoot簡介和Greenfoot游戲設(shè)計(jì)原理;第二篇介紹益智類游戲設(shè)計(jì),包含記憶翻牌游戲、拼圖游戲、掃雷游戲;第三篇介紹休閑類游戲設(shè)計(jì),包含彈鋼琴游戲、貪食蛇游戲、打磚塊游戲;第四篇介紹飛行類游戲設(shè)計(jì),包含太空生存游戲、星球大戰(zhàn)游戲、飛揚(yáng)的小鳥游戲;第五篇介紹棋牌類游戲設(shè)計(jì),包含黑白棋游戲、接龍紙牌游戲、中國象棋游戲。
本書內(nèi)容安排合理,架構(gòu)清晰,注重理論與實(shí)踐相結(jié)合,既適合作為零基礎(chǔ)Java游戲開發(fā)初學(xué)者的教程,也可作為本科院校及大專院校的教材,還可供職業(yè)技術(shù)學(xué)校和各類游戲培訓(xùn)機(jī)構(gòu)使用。
高校教師多年開發(fā)經(jīng)驗(yàn)的結(jié)晶之作,深入淺出講解使用Greenfoot編程軟件進(jìn)行Java游戲開發(fā)
前 言
隨著互聯(lián)網(wǎng) 時(shí)代的來臨,社會各行業(yè)對于計(jì)算機(jī)技術(shù)的依賴達(dá)到前所未有的程度,而計(jì)算機(jī)技術(shù)的應(yīng)用關(guān)鍵在于程序的設(shè)計(jì)和編寫,可以說編程能力不僅是未來社會的需要,也是未來個人所應(yīng)具備的基本素質(zhì)。然而學(xué)習(xí)程序設(shè)計(jì)并不容易,需要付出艱苦的努力,也要耗費(fèi)大量的時(shí)間和精力,因此選擇合適的學(xué)習(xí)工具尤為重要。雖然很多大型的編程工具都可以免費(fèi)使用,但對于初學(xué)者來說這些工具顯得過于復(fù)雜,由此帶來學(xué)習(xí)的困惑和壓力。理想的編程學(xué)習(xí)工具既要操作方便,又要功能齊全,還要簡單有趣。Greenfoot正是這樣一款小而美的編程工具。
Greenfoot是由英國肯特大學(xué)的學(xué)者開發(fā)的一款可視化編程軟件,起初被用于Java程序的教學(xué),而且通過可視化的圖形編程環(huán)境以及對游戲編程的良好支持,得到了眾多國家的廣泛使用,國外許多高校的計(jì)算機(jī)教師都使用這款軟件作為Java語言的教學(xué)工具。由于Greenfoot在教育界所取得的成功,一些大企業(yè)也將其作為自己的官方工具,例如Oracle公司將Greenfoot納入自身培訓(xùn)體系中,并在官網(wǎng)提供學(xué)習(xí)支持。同時(shí)Oracle還和國內(nèi)眾多高校與職業(yè)院校合作,推出教師培訓(xùn)計(jì)劃,鼓勵教師在教學(xué)中將Greenfoot作為工具,共同推動Greenfoot在Java程序教學(xué)中的應(yīng)用。
隨著近年來游戲產(chǎn)業(yè)的急劇升溫,游戲人才的缺口急劇增大,同時(shí)也吸引了更多的人學(xué)習(xí)游戲設(shè)計(jì)和編程。但是游戲程序設(shè)計(jì)的門檻相對來說比較高,沒有太多合適的學(xué)習(xí)工具幫助新手入門。游戲設(shè)計(jì)的書籍大多都是使用專業(yè)級的開發(fā)工具(如Unity3D、Cocos2d等),針對初學(xué)者的編程工具鳳毛麟角。而Greenfoot恰好可以填補(bǔ)這個空缺。Greenfoot為游戲編程提供了豐富而實(shí)用的API(Application Programming Interface,應(yīng)用程序接口),使得編寫小游戲異常方便,雖然它不能直接開發(fā)出商業(yè)級的游戲應(yīng)用,但能充分滿足游戲設(shè)計(jì)愛好者及初學(xué)者的學(xué)習(xí)需求。
可以說,Greenfoot既是學(xué)習(xí)Java語言的實(shí)用工具,又是學(xué)習(xí)游戲編程的便捷工具。本書寫作的初衷正是希望推廣和普及Greenfoot編程技術(shù),一方面提升Java語言學(xué)習(xí)者的編程興趣和編程水平,另一方面為游戲設(shè)計(jì)愛好者介紹一些基本的編程方法并提供實(shí)踐的指導(dǎo)。
全書分為五篇14章,內(nèi)容安排如下。
第一篇(第1章和第2章)介紹Greenfoot編程基礎(chǔ),包含Greenfoot簡介和Greenfoot游戲設(shè)計(jì)原理。
第二篇(第3~5章)介紹益智類游戲設(shè)計(jì),包含記憶翻牌游戲、拼圖游戲和掃雷游戲開發(fā)。
第三篇(第6~8章)介紹休閑類游戲設(shè)計(jì),包含彈鋼琴游戲、貪食蛇游戲和打磚塊游戲開發(fā)。
第四篇(第9~11章)介紹飛行類游戲設(shè)計(jì),包含太空生存游戲、星球大戰(zhàn)游戲和飛揚(yáng)的小鳥游戲開發(fā)。
第五篇(第12~14章)介紹棋牌類游戲設(shè)計(jì),包含黑白棋游戲、接龍紙牌游戲和中國象棋游戲開發(fā)。
本書的特點(diǎn)主要體現(xiàn)在以下幾方面。
按照學(xué)習(xí)者的認(rèn)知規(guī)律來組織內(nèi)容。本書選用的案例大都是經(jīng)典小游戲,大多數(shù)人都比較熟悉,這無形中會增加學(xué)習(xí)者的親切感,減輕學(xué)習(xí)壓力。同時(shí),各個游戲案例采用循序漸進(jìn)的方式來組織,前幾章都是比較短小的游戲,功能相對較少,知識點(diǎn)也比較簡單。隨著學(xué)習(xí)遞進(jìn)游戲規(guī)模會逐漸加大,游戲功能也更加復(fù)雜,涉及的知識點(diǎn)也會增多。但是基于前面章節(jié)的學(xué)習(xí),讀者也能夠較好地適應(yīng)相對復(fù)雜的內(nèi)容。
將游戲設(shè)計(jì)的方法論運(yùn)用到學(xué)習(xí)材料的組織上。在現(xiàn)實(shí)的游戲設(shè)計(jì)中經(jīng)常采用基于原型,逐步迭代的方式進(jìn)行開發(fā),即將整個游戲的全部功能分解為很多小部分,然后一部分一部分地實(shí)現(xiàn)。本書內(nèi)容的組織也采用類似的理念,即將每個游戲案例分解為多個小任務(wù),每一個任務(wù)都對應(yīng)著游戲的某部分功能,并且在前一任務(wù)完成的基礎(chǔ)上添加代碼來完成下一個任務(wù),從而展示游戲從無到有逐步擴(kuò)展的全過程。
內(nèi)容力求實(shí)用,強(qiáng)調(diào)實(shí)踐操作。本書詳細(xì)地描述了每個游戲案例的設(shè)計(jì)及實(shí)現(xiàn)細(xì)節(jié),盡量避免論述復(fù)雜的理論,著重強(qiáng)調(diào)游戲設(shè)計(jì)的整體過程和游戲編程的具體操作方法,能夠從實(shí)踐層面提高讀者的程序設(shè)計(jì)水平及游戲編程能力。此外,每個案例最后都設(shè)置了游戲擴(kuò)展練習(xí),在其中提供了一些對本案例進(jìn)行擴(kuò)展和改進(jìn)的思路,鼓勵讀者在理解游戲編寫的基本原理之后再加以實(shí)踐練習(xí),以便達(dá)到學(xué)以致用的效果。
通過文本與微視頻的結(jié)合來形成綜合性的學(xué)習(xí)材料。由于本書各章節(jié)相對獨(dú)立,而且各章的案例被分解為多個任務(wù)分別進(jìn)行介紹,因此特別適合與微視頻講解的形式相結(jié)合。書中為每個游戲案例的每個任務(wù)都配套了微視頻,詳細(xì)講解相關(guān)代碼的編寫原理和方法,以便彌補(bǔ)單一文本在敘述方面的不足,從而將文本和視頻音頻結(jié)合起來形成綜合性、立體性的學(xué)習(xí)材料。同時(shí),為每個微視頻生成二維碼附注在章節(jié)對應(yīng)位置上,讓讀者能夠在移動環(huán)境下通過掃碼進(jìn)行學(xué)習(xí),從而形成全新的O2O學(xué)習(xí)體驗(yàn)。
在使用本書的過程中,建議讀者按照章節(jié)的順序循序漸進(jìn)地學(xué)習(xí),這樣更利于理解和積累知識。但由于各章的內(nèi)容相對獨(dú)立,讀者也完全可以根據(jù)自身興趣來安排學(xué)習(xí)的次序。強(qiáng)烈建議讀者在學(xué)習(xí)過程中加以實(shí)踐,對于每個游戲案例的各個小任務(wù),可以先試著自己動手去實(shí)現(xiàn),若遇到問題再參考書中的解決辦法。而對于每章最后的游戲擴(kuò)展練習(xí),也希望讀者能夠認(rèn)真地加以思考和解決。紙上得來終覺淺,絕知此事要躬行,只有親自動手編寫代碼,才能真正地提高程序設(shè)計(jì)水平及游戲編程能力。
本書適合所有對游戲設(shè)計(jì)或程序設(shè)計(jì)感興趣的讀者,包括高校和職業(yè)院校的學(xué)生及教師、游戲開發(fā)人員、游戲編程愛好者、Java語言學(xué)習(xí)者、程序設(shè)計(jì)愛好者等。本書不僅可供讀者自主學(xué)習(xí)和閱讀,還可以作為高校及培訓(xùn)機(jī)構(gòu)的游戲設(shè)計(jì)教材或是Java程序設(shè)計(jì)的實(shí)踐教材。
感謝家人在本書的寫作過程中給予的支持和關(guān)心,還要特別感謝楊仕青和高惠君為本書提供了豐富的素材,同時(shí)感謝潘肖男翻譯了Greenfoot API文檔。
由于作者水平有限,書中難免存在一些疏漏,敬請廣大讀者批評指正。對于本書有任何疑問,可以發(fā)郵件至hawking329@sina.com進(jìn)行咨詢,也可以加入Greenfoot QQ群(29411309)進(jìn)行探討。
作者 于白馬湖畔
目錄
第一篇 Greenfoot編程基礎(chǔ)
第1章 Greenfoot簡介 2
1.1 概述 2
1.2 Greenfoot的安裝及設(shè)置 3
1.3 Greenfoot基本操作方法 6
1.3.1 創(chuàng)建游戲場景 6
1.3.2 添加游戲角色 11
1.3.3 運(yùn)行游戲 12
1.4 Greenfoot提供的主要API 13
第2章 Greenfoot游戲設(shè)計(jì)原理 18
2.1 設(shè)置游戲場景和角色 18
2.1.1 調(diào)整游戲場景的大小 18
2.1.2 設(shè)置游戲的背景圖像 19
2.1.3 初始化游戲角色對象 20
2.2 實(shí)現(xiàn)角色移動 20
2.2.1 改變位置 21
2.2.2 改變旋轉(zhuǎn)角度 21
2.2.3 改變圖像 22
2.2.4 實(shí)現(xiàn)隨機(jī)行為 22
2.3 圖像處理 23
2.3.1 使用游戲角色類的圖像 23
2.3.2 使用圖片文件 23
2.3.3 生成圖像 24
2.3.4 繪制圖像 25
2.4 碰撞檢測 28
2.4.1 基于網(wǎng)格單元的碰撞檢測 29
2.4.2 基于角色圖像的碰撞檢測 30
2.5 輸入控制 30
2.5.1 鍵盤控制 31
2.5.2 鼠標(biāo)控制 31
2.6 播放聲音 32
2.7 游戲運(yùn)行控制 33
2.7.1 停止運(yùn)行游戲 33
2.7.2 設(shè)定游戲的運(yùn)行速度 34
2.7.3 推遲游戲的運(yùn)行 34
2.7.4 設(shè)定角色的顯示順序 34
2.7.5 設(shè)定角色的行為順序 35
2.8 導(dǎo)出游戲 35
2.8.1 將游戲項(xiàng)目發(fā)布到Greenfoot作品庫 35
2.8.2 將游戲項(xiàng)目以網(wǎng)頁的形式導(dǎo)出 37
2.8.3 將游戲項(xiàng)目以應(yīng)用程序的形式導(dǎo)出 37
2.8.4 將游戲項(xiàng)目導(dǎo)出為單獨(dú)的Greenfoot項(xiàng)目文件 37
第二篇 益智類游戲設(shè)計(jì)
第3章 記憶翻牌游戲 40
3.1 游戲整體設(shè)計(jì) 40
3.2 游戲程序?qū)崿F(xiàn) 41
3.2.1 初始化游戲場景 42
3.2.2 實(shí)現(xiàn)翻牌動作 45
3.2.3 配對檢查 47
3.2.4 實(shí)現(xiàn)游戲結(jié)束 49
3.3 游戲擴(kuò)展練習(xí) 52
第4章 拼圖游戲 53
4.1 游戲整體設(shè)計(jì) 53
4.2 游戲程序?qū)崿F(xiàn) 55
4.2.1 初始化游戲場景 55
4.2.2 打亂圖片塊 58
4.2.3 移動圖片塊 60
4.2.4 游戲結(jié)束判定 62
4.3 游戲擴(kuò)展練習(xí) 64
第5章 掃雷游戲 66
5.1 游戲整體設(shè)計(jì) 66
5.2 游戲程序?qū)崿F(xiàn) 68
5.2.1 初始化游戲場景 68
5.2.2 設(shè)置地雷 69
5.2.3 處理鼠標(biāo)操作 71
5.2.4 游戲結(jié)束判定和處理 76
5.3 游戲擴(kuò)展練習(xí) 78
第三篇 休閑類游戲設(shè)計(jì)
第6章 彈鋼琴游戲 82
6.1 游戲整體設(shè)計(jì) 82
6.2 游戲程序?qū)崿F(xiàn) 83
6.2.1 添加一個琴鍵 83
6.2.2 實(shí)現(xiàn)琴鍵的彈奏 85
6.2.3 繪制所有的琴鍵 88
6.3 游戲擴(kuò)展練習(xí) 93
第7章 貪食蛇游戲 95
7.1 游戲整體設(shè)計(jì) 95
7.2 游戲程序?qū)崿F(xiàn) 97
7.2.1 控制蛇頭移動 97
7.2.2 添加食物 100
7.2.3 添加蛇身部分 100
7.2.4 設(shè)定游戲結(jié)束規(guī)則 103
7.2.5 消除蛇身長度的限制 106
7.3 游戲擴(kuò)展練習(xí) 107
第8章 打磚塊游戲 109
8.1 游戲整體設(shè)計(jì) 109
8.2 游戲程序?qū)崿F(xiàn) 111
8.2.1 小球彈跳 112
8.2.2 小球與擋板交互 113
8.2.3 敲擊磚塊 118
8.2.4 完善游戲規(guī)則 122
8.3 游戲擴(kuò)展練習(xí) 127
第四篇 飛行類游戲設(shè)計(jì)
第9章 太空生存游戲 130
9.1 游戲整體設(shè)計(jì) 130
9.2 游戲程序?qū)崿F(xiàn) 131
9.2.1 創(chuàng)建游戲場景和角色 132
9.2.2 完善游戲規(guī)則 134
9.2.3 實(shí)現(xiàn)計(jì)時(shí)功能 137
9.2.4 添加成績排行榜 140
9.3 游戲擴(kuò)展練習(xí) 143
第10章 星球大戰(zhàn)游戲 145
10.1 游戲整體設(shè)計(jì) 145
10.2 游戲程序?qū)崿F(xiàn) 147
10.2.1 游戲主要類的實(shí)現(xiàn) 147
10.2.2 顯示爆炸效果 151
10.2.3 程序結(jié)構(gòu)優(yōu)化 153
10.3 游戲擴(kuò)展練習(xí) 161
第11章 飛揚(yáng)的小鳥游戲 162
11.1 游戲整體設(shè)計(jì) 162
11.2 游戲程序?qū)崿F(xiàn) 163
11.2.1 創(chuàng)建場景和角色 164
11.2.2 實(shí)現(xiàn)場景滾動 167
11.2.3 完善游戲規(guī)則 174
11.2.4 添加圖形用戶界面 180
11.3 游戲擴(kuò)展練習(xí) 182
第五篇 棋牌類游戲設(shè)計(jì)
第12章 黑白棋游戲 186
12.1 游戲整體設(shè)計(jì) 187
12.2 游戲程序?qū)崿F(xiàn) 187
12.2.1 創(chuàng)建棋盤和棋子 188
12.2.2 實(shí)現(xiàn)下棋操作 190
12.2.3 設(shè)置下棋規(guī)則 192
12.2.4 添加提示信息 199
12.2.5 完善游戲規(guī)則 202
12.3 游戲擴(kuò)展練習(xí) 204
第13章 接龍紙牌游戲 206
13.1 游戲整體設(shè)計(jì) 207
13.2 游戲程序?qū)崿F(xiàn) 208
13.2.1 初始化牌桌 208
13.2.2 實(shí)現(xiàn)翻牌功能 214
13.2.3 暫存撲克牌 216
13.2.4 歸整撲克牌 222
13.3 游戲擴(kuò)展練習(xí) 229
第14章 中國象棋游戲 230
14.1 游戲整體設(shè)計(jì) 230
14.2 游戲程序?qū)崿F(xiàn) 231
14.2.1 創(chuàng)建棋盤和棋子 232
14.2.2 設(shè)置下棋規(guī)則 235
14.2.3 實(shí)現(xiàn)下棋操作 256
14.2.4 實(shí)現(xiàn)勝負(fù)判斷 260
14.3 游戲擴(kuò)展練習(xí) 261
附錄 Greenfoot API參考 263
參考文獻(xiàn) 297