出版時(shí)間:2011-10 出版社:電子工業(yè)出版社 作者:秦海玉 編 頁數(shù):292
Tag標(biāo)簽:無
內(nèi)容概要
本書講述了如何使用visual
c++來開發(fā)windows平臺游戲的基礎(chǔ)知識,主要針對想學(xué)習(xí)游戲設(shè)計(jì)以及希望進(jìn)行windows程序設(shè)計(jì)的初學(xué)者。全書分為4篇共14章。第1篇為windows編程基礎(chǔ),除了基本的概念和工具的使用外,還介紹了窗口與消息機(jī)制、unicode編程、gdi編程等內(nèi)容;第2篇為游戲編程基礎(chǔ),介紹了庫的編程技術(shù)、設(shè)計(jì)模式、幀的基本概念,并搭建了一個(gè)windows下游戲編程的框架;第3篇的射擊游戲綜合運(yùn)用前面兩篇的所有知識,完成了一款射擊游戲,并講述了xml的基本編程以及關(guān)卡設(shè)計(jì);第4篇為進(jìn)一步學(xué)習(xí)打下基礎(chǔ),講解了最基礎(chǔ)的windows核心編程,包括進(jìn)程管理、多線程編程、互斥訪問和同步,以及direct
x應(yīng)用于2d編程的內(nèi)容。本書介紹了在windows環(huán)境下進(jìn)行游戲編程所用到的各種基礎(chǔ)知識,而并非局限于windows
api本身的編程。本書每個(gè)章節(jié)都以簡單的實(shí)例輔助對知識點(diǎn)的理解,力求深入淺出,并且逐漸遞增難度。
本書面向本科院校、高職院校的數(shù)字媒體技術(shù)專業(yè)、軟件工程、軟件技術(shù)等相關(guān)專業(yè)以及數(shù)碼藝術(shù)設(shè)計(jì)愛好者。
書籍目錄
第1篇 windows編程基礎(chǔ)
第1章 引言
1.1 電子游戲產(chǎn)業(yè)
1.1.1 概述
1.1.2 游戲產(chǎn)業(yè)價(jià)值鏈
1.1.3 電子游戲的歷史
1.1.4 電子游戲產(chǎn)業(yè)的游戲分類
1.2 windows的發(fā)展歷史
1.3 windows應(yīng)用程序開發(fā)
1.4 一些說明
1.5 習(xí)題
第2章 學(xué)習(xí)使用visual c++
2.1 visual c++安裝和使用
2.1.1 visual c++的版本信息
2.1.2 創(chuàng)建win32應(yīng)用程序
2.2 win32控制臺應(yīng)用程序設(shè)計(jì)
2.2.1 預(yù)編譯頭文件
2.2.2 unicode編碼
2.2.3 tchar
2.2.4 debug和release
2.2.5 基本的調(diào)試方法
2.3 良好的編程習(xí)慣
2.3.1 使用正確的代碼格式
2.3.2 采用匈牙利命名法
2.4 win32 api中的常見數(shù)據(jù)類型
2.5 習(xí)題
第3章 創(chuàng)建窗口與消息響應(yīng)
3.1 windows應(yīng)用程序的基本概念
3.1.1 窗口
3.1.2 入口函數(shù)
3.1.3 消息和窗口函數(shù)
3.1.4 進(jìn)隊(duì)消息與不進(jìn)隊(duì)消息
3.1.5 使用msdn來學(xué)習(xí)窗口消息
3.2 創(chuàng)建窗口
3.2.1 包含頭文件
3.2.2 定義類名和標(biāo)題字符串
3.2.3 注冊窗口
3.2.4 窗口類的風(fēng)格
3.2.5 創(chuàng)建窗口
3.2.6 窗口風(fēng)格
3.2.7 顯示窗口
3.2.8 更新窗口
3.2.9 消息循環(huán)
3.2.10 窗口函數(shù)
3.2.11 應(yīng)用程序的退出
3.3 關(guān)鍵在于應(yīng)用
3.4 習(xí)題
第4章 windows程序設(shè)計(jì)基礎(chǔ)
4.1 gdi的各種概念
4.1.1 什么是gdi
4.1.2 圖形設(shè)備上下文
4.1.3 wm_paint消息
4.2 gdi版本的hello,world!
4.2.1 beginpaint和endpaint
4.2.2 輸出文本
4.3 打字程序
4.3.1 按鍵消息
4.3.2 字符消息
4.3.3 強(qiáng)制刷新
4.3.4 簡陋的打字程序
4.4 涂鴉程序
4.4.1 gdi函數(shù)
4.4.2 涂鴉程序1.0
4.4.3 鼠標(biāo)消息
4.4.4 getdc與releasedc
4.4.5 設(shè)置字符串
4.4.6 畫線與填充
4.4.7 涂鴉程序2.0
4.5 時(shí)鐘
4.5.1 獲取系統(tǒng)時(shí)間
4.5.2 生成和銷毀定時(shí)器
4.5.3 獲取按鍵的輸入狀態(tài)
4.5.4 wm_nchittest
4.5.5 使用右鍵菜單
4.6 使用資源
4.6.1 使用圖標(biāo)資源
4.6.2 使用鼠標(biāo)指針
4.6.3 使用菜單
4.6.4 加速鍵
4.7 文件內(nèi)核對象
4.7.1 createfile
4.7.2 文件大小和文件位置
4.7.3 讀/寫文件
4.7.4 與文件相關(guān)的通用對話框
4.7.5 實(shí)現(xiàn)涂鴉文件讀/寫
4.8 習(xí)題
第5章 進(jìn)一步提高windows編程
5.1 圖像文件的格式
5.2 位圖
5.2.1 位圖的概念
5.2.2 加載位圖
5.2.3 設(shè)備dc與內(nèi)存dc
5.2.4 bitblt
5.2.5 繪制位圖文件的基本流程
5.2.6 完整的代碼
5.2.7 改變窗口的位置與尺寸
5.3 內(nèi)存dc的應(yīng)用
5.3.1 鏤空圖
5.3.2 一個(gè)小程序
5.3.3 為什么會有屏閃
5.3.4 背景滾動
5.4 俄羅斯方塊
5.4.1 設(shè)計(jì)思路
5.4.2 設(shè)計(jì)block
5.4.3 cgame的設(shè)計(jì)
5.4.4 cgame的實(shí)現(xiàn)
5.5 習(xí)題
第2篇 游戲編程基礎(chǔ)
第6章 庫與cximage庫
6.1 庫的基本概念
6.2 編譯、鏈接、執(zhí)行
6.3 靜態(tài)庫的基本編程
6.4 動態(tài)庫編程
6.4.1 動態(tài)庫基本編程過程
6.4.2 使用統(tǒng)一的頭文件
6.4.3 再次審視編譯鏈接執(zhí)行
6.5 使用cximage庫
6.5.1 生成cximage
6.5.2 通過dll使用cximage
6.5.3 使用cximage顯示圖片
6.5.4 旋轉(zhuǎn)圖片
6.5.5 封裝cximage
6.6 習(xí)題
第7章 常用設(shè)計(jì)模式的介紹
7.1 面向?qū)ο蟪绦蛟O(shè)計(jì)
7.1.1 面向?qū)ο蟪绦蛟O(shè)計(jì)的三大機(jī)制
7.1.2 面向?qū)ο蟪绦蛟O(shè)計(jì)的原則
7.2 設(shè)計(jì)模式概論
7.3 模板方法模式
7.4 策略模式
7.5 習(xí)題
第8章 搭建windows游戲程序框架
8.1 分析win32項(xiàng)目的基本代碼
8.2 游戲循環(huán)
8.3 “糟糕”的消息機(jī)制
8.3.1 同步函數(shù)與異步函數(shù)
8.3.2 實(shí)現(xiàn)游戲循環(huán)
8.4 利用模板方法模式搭建windows游戲程序框架
8.5 使用并完善框架類
8.5.1 使用capplication
8.5.2 實(shí)現(xiàn)雙緩沖技術(shù)避免屏閃
8.5.3 計(jì)算并顯示幀率
8.6 查詢按鍵及退出游戲的實(shí)現(xiàn)
8.6.1 獲取按鍵狀態(tài)
8.6.2 escape退出
8.7 游戲暫停功能的實(shí)現(xiàn)
8.7.1 單擊空格鍵暫停游戲
8.7.2 是否當(dāng)前窗口判斷游戲暫?!?br /> 8.8 六字真言:輸入、計(jì)算、輸出
8.9 習(xí)題
第3篇 射 擊 游 戲
第9章 圖像顯示與背景
9.1 必要的數(shù)學(xué)運(yùn)算
9.1.1 坐標(biāo)和角度運(yùn)算
9.1.2 敵機(jī)的旋轉(zhuǎn)角度
9.1.3 邊界檢測
9.2 管理器的概念
9.2.1 怪物
9.2.2 怪物管理器
9.2.3 怪物仿真程序的邏輯
9.3 圖片資源的管理
9.4 實(shí)現(xiàn)背景的滾動
9.4.1 背景類cbackground的聲明
9.4.2 背景類cbackground的實(shí)現(xiàn)
9.4.3 背景類cbackground的使用
9.5 可移動對象接口類imovable
9.5.1 可移動對象
9.5.2 可移動對象管理器
9.6 實(shí)現(xiàn)云彩
9.7 習(xí)題
第10章 飛機(jī)和子彈
10.1 總體設(shè)計(jì)
10.2 飛機(jī)
10.3 實(shí)現(xiàn)戰(zhàn)機(jī)
10.4 敵機(jī)
10.4.1 整體設(shè)計(jì)
10.4.2 敵機(jī)類cenemy
10.4.3 敵機(jī)管理器
10.4.4 敵機(jī)與戰(zhàn)機(jī)的碰撞
10.4.5 使用敵機(jī)管理器類
10.5 敵機(jī)飛起來
10.5.1 敵機(jī)與策略
10.5.2 勻速策略類
10.5.3 策略管理器
10.5.4 直線型策略
10.5.5 讓敵機(jī)具備跟蹤功能
10.6 子彈
10.6.1 總體思路
10.6.2 子彈管理器
10.6.3 碰撞檢測
10.6.4 發(fā)射
10.7 習(xí)題
第11章 實(shí)現(xiàn)關(guān)卡
11.1 xml編程基礎(chǔ)
11.1.1 xml的基本概念
11.1.2 xml文件示例
11.1.3 使用xml notepad
11.2 通過xml實(shí)現(xiàn)關(guān)卡
11.2.1 使用tinyxml
11.2.2 xml實(shí)現(xiàn)敵機(jī)類型
11.2.3 xml實(shí)現(xiàn)子彈類型
11.2.4 xml實(shí)現(xiàn)戰(zhàn)機(jī)子彈
11.2.5 xml實(shí)現(xiàn)關(guān)卡腳本
11.3 習(xí)題
第4篇 知 識 拓 展
第12章 windows體系結(jié)構(gòu)
12.1 多任務(wù)的操作系統(tǒng)
12.2 windows的體系結(jié)構(gòu)
12.2.1 核心態(tài)
12.2.2 用戶態(tài)
12.3 搶先式多任務(wù)工作方式
12.4 windows內(nèi)存管理機(jī)制
12.5 多線程
12.6 習(xí)題
第13章 windows高級編程
13.1 內(nèi)核對象與內(nèi)核對象句柄
13.1.1 內(nèi)核對象
13.1.2 創(chuàng)建內(nèi)核對象
13.1.3 使用計(jì)數(shù)
13.1.4 進(jìn)程間共享內(nèi)核對象
13.1.5 觸發(fā)/未觸發(fā)狀態(tài)
13.2 進(jìn)程
13.2.1 進(jìn)程與線程
13.2.2 通過任務(wù)管理器查看程序的信息
13.2.3 創(chuàng)建子進(jìn)程
13.2.4 終止進(jìn)程
13.3 多線程編程
13.3.1 進(jìn)程與線程
13.3.2 引入線程的好處
13.3.3 如何使用多線程
13.3.4 創(chuàng)建線程
13.3.5 多個(gè)線程使用同一個(gè)線程函數(shù)
13.3.6 線程的調(diào)度
13.4 互斥訪問共享資源
13.4.1 提出問題
13.4.2 互鎖函數(shù)
13.4.3 關(guān)鍵段操作
13.4.4 使用內(nèi)核對象保證互斥訪問
13.5 線程同步
13.5.1 單向的同步關(guān)系
13.5.2 循環(huán)的同步關(guān)系
13.6 習(xí)題
第14章 使用directx完成二維游戲繪制
14.1 directx概述
14.2 初始化direct3d
14.2.1 獲取idirect3d9接口
14.2.2 構(gòu)造d3dpresent_parameters結(jié)構(gòu)體
14.2.3 創(chuàng)建idirect3ddevice9對象
14.2.4 創(chuàng)建direct3d窗口
14.3 顯示圖形
14.3.1 頁面切換
14.3.2 在響應(yīng)wm_paint消息的代碼中進(jìn)行繪制
14.3.3 頂點(diǎn)與fvf(靈活頂點(diǎn)格式)
14.3.4 三角形
14.3.5 繪制二維三角形
14.4 使用directgraphics進(jìn)行2d圖像處理
14.4.1 紋理
14.4.2 創(chuàng)建并使用紋理
14.4.3 常用渲染狀態(tài)
14.5 把direct3d融入框架中
14.5.1 紋理類
14.5.2 渲染系統(tǒng)類
14.5.3 使用渲染系統(tǒng)
14.6 習(xí)題
附錄a visual c++編譯常見錯(cuò)誤
附錄b ascii碼表
附錄c 標(biāo)準(zhǔn)模板庫的使用
c.1 stl概述
c.1.1 要點(diǎn)
c.1.2 頭文件
c.1.3 名字空間
c.1.4 迭代器
c.2 常用數(shù)據(jù)容器與數(shù)據(jù)結(jié)構(gòu)
c.3 vector
c.3.1 插入數(shù)據(jù)
c.3.2 遍歷
c.4 list
c.4.1 list的迭代器
c.4.2 遍歷
c.4.3 刪除元素
c.5 map
c.5.1 數(shù)據(jù)的插入和修改
c.5.2 數(shù)據(jù)的遍歷
c.5.3 數(shù)據(jù)的查找
c.5.4 數(shù)據(jù)的清空與判空
c.6 使用標(biāo)準(zhǔn)模板庫(stl)
參考文獻(xiàn)
章節(jié)摘錄
版權(quán)頁:插圖:自1990年代中期以來,電子游戲產(chǎn)業(yè)的最新做法是,游戲玩家的崛起成為游戲內(nèi)容的開發(fā)者。游戲玩家的崛起成為了游戲內(nèi)容的第四方開發(fā)者,使得更多開放源代碼模型的游戲設(shè)計(jì)開發(fā)和工程出現(xiàn)了。玩家創(chuàng)建用戶修改的游戲(MOD),在某些情況下與原游戲一樣流行,甚至比原游戲更受歡迎。這方面的一個(gè)例子是游戲《反恐精英》,它在最初是電子游戲《半條命》一個(gè)的MOD,并最終成為一個(gè)非常成功的發(fā)行游戲。雖然這種“修改者共享”可能只增加特定的游戲用戶群的約1%,但數(shù)量的增加將提供更多的修改游戲的機(jī)會(例如發(fā)放源代碼),并伴隨國際玩家群體的上升而增加。據(jù)Ben Sawyer推測,到2012年將存在多達(dá)600000的在線游戲公共開發(fā)者。這將有效地為游戲產(chǎn)業(yè)價(jià)值鏈增加一個(gè)新的組成部分,并且如果繼續(xù)走向成熟,它將融入整個(gè)行業(yè)。早期的開發(fā)成本最低,電子游戲應(yīng)該是相當(dāng)有利可圖的。每個(gè)游戲可由一個(gè)程序員開發(fā),或由一個(gè)程序員和美工師組成的小團(tuán)隊(duì)開發(fā),可以出售數(shù)10萬份。這些游戲中的許多只花了幾個(gè)月的時(shí)間制作,所以開發(fā)商每年可以發(fā)布幾個(gè)題目。因此,發(fā)行商往往可以大有收益,如游戲銷售的版稅。許多早期的游戲發(fā)行商是從這個(gè)經(jīng)濟(jì)氣候起步的,如OriginSystems、雪樂山、卡普空、美國動視和美國藝電。隨著計(jì)算和圖形處理能力的增加,開發(fā)團(tuán)隊(duì)的規(guī)模也隨之?dāng)U大,需要大量的工作人員來解決日益復(fù)雜的圖形和編程?,F(xiàn)在,即使是使用中間層和預(yù)先構(gòu)建的游戲引擎,游戲預(yù)算也可以輕易達(dá)到數(shù)百萬美元。最專業(yè)的游戲需要一至三年的開發(fā),這進(jìn)一步提高了預(yù)算的壓力。一些開發(fā)商正在轉(zhuǎn)向新的制作和發(fā)行渠道,如在線銷售,以降低成本。今天,通過主要系統(tǒng)和游戲等的銷售對電子游戲產(chǎn)業(yè)的經(jīng)濟(jì)產(chǎn)生了重大的影響,例如,《俠盜獵車手Ⅳ》上市第一周銷售額超過了5億美元。該游戲的收入超過了《蜘蛛俠3》的上市周末和原來的銷量冠軍《光環(huán)3》的總和。許多個(gè)人也受益于電子游戲經(jīng)濟(jì)上的成功,其中包括任天堂的前董事長、日本首富山內(nèi)溥。電子游戲產(chǎn)業(yè)目前面臨著資金緊張,因?yàn)樗纫^續(xù)盈利,又要給人才加薪。結(jié)果是,傳統(tǒng)的新游戲來源——游戲開發(fā)商基本上是正在消亡或納入大發(fā)行商。游戲產(chǎn)業(yè)目前正經(jīng)歷一個(gè)鞏固的階段和由成本升級帶來的縱向一體化。這種氣候也孕育了充滿活力的獨(dú)立游戲開發(fā)商組成的小公司,這些小公司嘗試使用互聯(lián)網(wǎng),而不是傳統(tǒng)的零售渠道與玩家溝通。電子游戲的分類標(biāo)準(zhǔn)五花八門,新的游戲類型不斷涌現(xiàn)。對于某一款游戲,很有可能它是若干種游戲類型的合成。根據(jù)電子游戲內(nèi)容、游戲的目的,大致可以分為以下幾種:·RPG= Role-Playing Game:角色扮演游戲,由玩家扮演游戲中的一個(gè)或數(shù)個(gè)角色,有完整的故事情節(jié)的游戲。RPG游戲是最能引起玩家共鳴的游戲類型。
編輯推薦
《Windows游戲程序設(shè)計(jì)基礎(chǔ)》:數(shù)碼藝術(shù)設(shè)計(jì)叢書之一。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
Windows游戲程序設(shè)計(jì)基礎(chǔ) PDF格式下載