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