本書(shū)把開(kāi)發(fā)游戲案例應(yīng)用于C語(yǔ)言教學(xué), 培養(yǎng)學(xué)生對(duì)編程的興趣。為了達(dá)到這一目的, 課程應(yīng)用C語(yǔ)言的語(yǔ)法知識(shí), 帶領(lǐng)同學(xué)從無(wú)到有地開(kāi)發(fā)游戲, 通過(guò)游戲案例將已學(xué)的主要語(yǔ)法知識(shí)和常用算法串起來(lái)。在設(shè)計(jì)的過(guò)程中盡量站在學(xué)生的角度, 降低編寫(xiě)游戲的難度, 不超出學(xué)生的知識(shí)范圍, 逐步提高學(xué)生對(duì)編程的興趣和能力。
第1章C語(yǔ)言游戲開(kāi)發(fā)快速入門(mén)
1.1彈跳的小球
1.1.1顯示靜止的小球
1.1.2小球下落
1.1.3上下彈跳的小球
1.1.4斜著彈跳的小球
1.1.5控制小球彈跳的速度
1.1.6小結(jié)
1.2zui簡(jiǎn)單的飛機(jī)游戲
1.2.1scanf控制飛機(jī)移動(dòng)
1.2.2getch控制飛機(jī)移動(dòng)
1.2.3顯示復(fù)雜的飛機(jī)圖案
1.2.4發(fā)射激光
1.2.5打靶練習(xí)
1.2.6小結(jié)
1.3程序調(diào)試方法
1.3.1語(yǔ)法錯(cuò)誤
1.3.2邏輯錯(cuò)誤
1.3.3常用技巧
第2章函數(shù)封裝的游戲開(kāi)發(fā)
2.1飛機(jī)游戲
2.1.1代碼重構(gòu)
2.1.2新式子彈
2.1.3靜止的敵機(jī)
2.1.4敵機(jī)移動(dòng)
2.1.5擊中敵機(jī)
2.1.6清屏功能
2.1.7小結(jié)
2.2用函數(shù)實(shí)現(xiàn)反彈球消磚塊
2.2.1代碼重構(gòu)
2.2.2顯示邊框
2.2.3顯示移動(dòng)擋板
2.2.4反彈小球
2.2.5消磚塊
2.2.6小結(jié)
2.3flappy bird
2.3.1下落的小鳥(niǎo)
2.3.2顯示小鳥(niǎo)和障礙物
2.3.3讓障礙物移動(dòng)
2.3.4判斷是否碰撞
2.3.5障礙物循環(huán)出現(xiàn)
2.3.6小結(jié)
第3章應(yīng)用數(shù)組的游戲開(kāi)發(fā)
3.1生命游戲
3.1.1游戲的初始化
3.1.2繁衍或死亡
3.1.3小結(jié)
3.2用數(shù)組實(shí)現(xiàn)反彈球消磚塊
3.2.1反彈球
3.2.2增加擋板
3.2.3消磚塊
3.2.4小結(jié)
3.3空戰(zhàn)游戲
3.3.1飛機(jī)的顯示與控制
3.3.2發(fā)射子彈
3.3.3擊中敵機(jī)
3.3.4多臺(tái)敵機(jī)
3.3.5發(fā)射散彈
3.3.6小結(jié)
3.4貪吃蛇
3.4.1構(gòu)造小蛇
3.4.2小蛇的移動(dòng)
3.4.3玩家控制小蛇移動(dòng)
3.4.4判斷游戲失敗
3.4.5吃食物增加長(zhǎng)度
3.4.6小結(jié)
3.5版本管理與團(tuán)隊(duì)協(xié)作
3.5.1SVN簡(jiǎn)介
3.5.2開(kāi)發(fā)實(shí)踐
3.5.3小結(jié)
第4章簡(jiǎn)單繪圖游戲的開(kāi)發(fā)
4.1EasyX快速入門(mén)
4.1.1EasyX的介紹與安裝
4.1.2簡(jiǎn)易繪圖
4.1.3簡(jiǎn)單動(dòng)畫(huà)
4.1.4小結(jié)
4.2多球反彈
4.2.1多個(gè)反彈球和墻壁碰撞
4.2.2反彈球之間相互碰撞
4.2.3小結(jié)
4.3實(shí)時(shí)鐘表
4.3.1繪制靜態(tài)秒針
4.3.2秒針的轉(zhuǎn)動(dòng)
4.3.3根據(jù)實(shí)際時(shí)間轉(zhuǎn)動(dòng)
4.3.4添加時(shí)針和分針
4.3.5添加表盤(pán)刻度
4.3.6小結(jié)
4.4結(jié)合游戲開(kāi)發(fā)框架和EasyX繪圖實(shí)現(xiàn)反彈球消磚塊
4.4.1游戲框架代碼的重構(gòu)
4.4.2繪制靜態(tài)擋板
4.4.3控制擋板接球
4.4.4消磚塊
4.4.5小結(jié)
4.5鼠標(biāo)交互
4.5.1鼠標(biāo)交互基礎(chǔ)
4.5.2用鼠標(biāo)控制擋板移動(dòng)
4.5.3按鼠標(biāo)左鍵初始化小球位置
4.5.4小結(jié)
第5章應(yīng)用圖片與聲音素材的游戲開(kāi)發(fā)
5.1使用圖片與聲音
5.1.1圖片的導(dǎo)入與使用
5.1.2遮罩圖的使用
5.1.3flappy bird初步
5.1.4聲音的導(dǎo)入與使用
5.1.5帶音效的flappy bird
5.1.6小結(jié)
5.2飛機(jī)大戰(zhàn)
5.2.1用鼠標(biāo)控制飛機(jī)移動(dòng)
5.2.2發(fā)射子彈
5.2.3增加敵機(jī)
5.2.4判斷勝敗
5.2.5增加音效
5.2.6小結(jié)
5.3復(fù)雜動(dòng)畫(huà)效果
5.3.1小人原地行走
5.3.2控制小人移動(dòng)
5.3.3構(gòu)建動(dòng)態(tài)地圖
5.3.4小結(jié)
5.4雙人游戲
5.4.1雙人輸入的問(wèn)題
5.4.2異步輸入函數(shù)
5.4.3雙人反彈球
5.4.4小結(jié)
第6章其他語(yǔ)法知識(shí)在游戲開(kāi)發(fā)中的應(yīng)用
6.1指針
6.1.1減少不必要的全局變量
6.1.2動(dòng)態(tài)二維數(shù)組
6.1.3小結(jié)
6.2字符串
6.2.1得分的轉(zhuǎn)換與輸出
6.2.2音樂(lè)播放函數(shù)的封裝
6.2.3靜態(tài)字符陣列的創(chuàng)建
6.2.4一場(chǎng)字符雨
6.2.5字符雨動(dòng)畫(huà)
6.2.6小結(jié)
6.3結(jié)構(gòu)體
6.3.1靜止小球的初始化與顯示
6.3.2小球的運(yùn)動(dòng)與反彈
6.3.3小球運(yùn)動(dòng)的規(guī)范化
6.3.4鼠標(biāo)的吸引力
6.3.5鼠標(biāo)的擊打斥力
6.3.6鼠標(biāo)的擾動(dòng)力
6.3.7絕dui延時(shí)
6.3.8小結(jié)
6.4文件
6.4.1工作目錄的設(shè)定
6.4.2多畫(huà)面顯示
6.4.3游戲的讀檔和存檔
6.4.4小結(jié)
第7章游戲化學(xué)習(xí)C語(yǔ)言的知識(shí)難點(diǎn)
7.1遞歸
7.1.1傳統(tǒng)漢諾塔
7.1.2可視化漢諾塔
7.1.3小結(jié)
7.2鏈表
7.2.1單個(gè)結(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)的定義
7.2.2兩個(gè)結(jié)點(diǎn)的串聯(lián)
7.2.3多個(gè)結(jié)點(diǎn)的初始化
7.2.4鏈表的輸出
7.2.5刪除結(jié)點(diǎn)
7.2.6小結(jié)
第8章游戲開(kāi)發(fā)實(shí)踐案例
8.1挖地小子
8.1.1主體功能描述
8.1.2主要實(shí)現(xiàn)步驟
8.2臺(tái)球
8.2.1主體功能描述
8.2.2主要實(shí)現(xiàn)步驟
8.3太鼓達(dá)人
8.3.1主體功能描述
8.3.2主要實(shí)現(xiàn)步驟
8.4掃雷
8.4.1主體功能描述
8.4.2主要實(shí)現(xiàn)步驟
8.5藍(lán)色藥水
8.5.1主體功能描述
8.5.2主要實(shí)現(xiàn)步驟
8.6Rings
8.6.1主體功能描述
8.6.2主要實(shí)現(xiàn)步驟
8.7豬小弟
8.7.1主體功能描述
8.7.2主要實(shí)現(xiàn)步驟
8.8俄羅斯方塊
8.8.1主體功能描述
8.8.2主要實(shí)現(xiàn)步驟
8.9通天魔塔
8.9.1主體功能描述
8.9.2主要實(shí)現(xiàn)步驟
8.101010
8.10.1主體功能描述
8.10.2主要實(shí)現(xiàn)步驟
8.11炸彈人
8.11.1主體功能描述
8.11.2主要實(shí)現(xiàn)步驟
8.12口袋妖怪
8.12.1主體功能描述
8.12.2主要實(shí)現(xiàn)步驟
8.13大魚(yú)吃小魚(yú)
8.13.1主體功能描述
8.13.2主要實(shí)現(xiàn)步驟
8.14小結(jié)
..............