六、程式設(shè)計(jì)二是面向?qū)ο筮€是面向過程這一章_第1頁
六、程式設(shè)計(jì)二是面向?qū)ο筮€是面向過程這一章_第2頁
六、程式設(shè)計(jì)二是面向?qū)ο筮€是面向過程這一章_第3頁
六、程式設(shè)計(jì)二是面向?qū)ο筮€是面向過程這一章_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、六、程式設(shè)計(jì)二是面向?qū)ο筮€是面向過程這一章標(biāo)簽Tags:,看標(biāo)題應(yīng)當(dāng)知道,這是一個(gè)比擬主要的選擇。面向?qū)ο?,是近幾年來新興起的一種編程手腕。由于其在Windows體系的輔助下敏捷突起,成為明日之星的可能性與日俱增。照理說,面向?qū)ο蟮木幊淌侄蔚拇_要比面向進(jìn)程的伎倆要先進(jìn)的多。然而,面向?qū)ο蟮木幊桃灿兄闹旅觞c(diǎn)。就拿C+在Windows98下編游戲來說:假如以面向?qū)ο蟮那閯?shì)進(jìn)行編程的話,那么在游戲運(yùn)行時(shí),程序主動(dòng)創(chuàng)立的類將會(huì)變的非常多。而且在進(jìn)行新聞循環(huán)時(shí),有大部分的運(yùn)行時(shí)光是控制在Windows體系手里。這將會(huì)大大影響游戲的運(yùn)行速度,風(fēng)云就是一個(gè)很好的例子,在一臺(tái)Pentium133上玩風(fēng)云

2、慢的就像烏龜,而雷同清楚度的大富翁在這一機(jī)型上卻奔馳如飛。當(dāng)然,你也可以在你的游戲配置中標(biāo)明"本游戲最低配置為Pentium300+*MB內(nèi)存"如果一個(gè)游戲以面向?qū)ο笄閯?shì)編程的話,那么它用到的類將會(huì)有成百上千個(gè)。此時(shí)如果將這一游戲以面向過程的情勢(shì)重新編寫的話,那么它用到的類不會(huì)超過20個(gè)(Windows下的游戲不會(huì)超過100個(gè))。如此多的類當(dāng)然會(huì)將游戲的速度降到很慢。 當(dāng)然,我不是故意貶低面向?qū)ο蟮木幊淌滞?。面向?qū)ο蟮木幊淌滞笥脕砭帉懤密浖菍⑹巧仙现x,而用來編游戲可就有些不如面向進(jìn)程了(現(xiàn)在)。下面我們以在面向進(jìn)程的編程伎倆闡明一下在一個(gè)角色扮演型游戲中所須要的模塊(

3、類)。游戲內(nèi)部所用模塊游戲外部所用工具 圖片管理器輿圖編輯器動(dòng)畫編輯器人物信息管理器物品信息管理器劇情腳本編輯器音樂管理器聲音管理器在上表中,左邊的結(jié)構(gòu)圖是一個(gè)角色扮演型游戲中至少要用到的模塊(類),右邊的是你自己所要用到的幾個(gè)工具。這些模塊和工具在一個(gè)游戲中可以說是必不可少的,有些編程職員愛好將這些所有的模塊和工具造在一些,便涌現(xiàn)了所謂的調(diào)試模式。其實(shí)這是一個(gè)很不好的習(xí)慣,由于一個(gè)游戲原來就是一個(gè)很大的程序聚集。光是游戲本身所必須的模塊就已經(jīng)使游戲程序變得很大了,dnf網(wǎng)絡(luò)連接中斷,如果再加上一些對(duì)玩家來說沒有用的工具,那你想想:這個(gè)游戲程序會(huì)變得多么大。所以我以為游戲模塊應(yīng)與工具完整離開。

4、 下面按步驟講一下每個(gè)模塊與工具的工作范疇。顯示掌握:對(duì)顯示器、顯示卡進(jìn)行管理,負(fù)責(zé)初始化顯示模式及畫面的高速顯示。提供基礎(chǔ)的操作函數(shù),有畫點(diǎn)、畫垂直線、畫程度線、畫空心矩形、畫實(shí)心矩形這幾個(gè)函數(shù)即可。再供給幾個(gè)特別處理的函數(shù),比如淡入淡出、屏幕閃耀等。字符管理:故名思義,管理對(duì)字符的顯示操作。負(fù)責(zé)讀取字庫,并使用顯示模塊提供的根本操作函數(shù)顯示字符。(如果您感到在顯示字符上也要進(jìn)步速度的話,那么您可以將字符管理模塊和顯示控制模塊編寫到一塊,在顯示字符時(shí)搞直接寫屏。能進(jìn)步字符顯示速度15%)窗口節(jié)制:別懂得錯(cuò)了,這一模塊重要用于在游戲中菜單、選擇項(xiàng)、提醒信息的顯示。圖片管理:這一模塊按每個(gè)人游戲

5、的習(xí)慣不同分為兩類:一、有些人造游戲沒有圖片管理模塊,而在窗口掌握、人物管理、物品管理、地圖把持、動(dòng)畫控制這幾個(gè)模塊中各自樹立相互獨(dú)立的圖片庫。這樣做的利益是每個(gè)圖片庫相互獨(dú)立,不會(huì)混雜。壞處是必需賜與上每個(gè)模塊都配備一個(gè)圖片管理模塊,使游戲程序變大。而且每個(gè)圖片庫之間的圖片不能互相調(diào)用,有時(shí)會(huì)造成不必要的揮霍。二、我推舉使用第二種辦法:只造一個(gè)圖片管理模塊,將所有的圖片(動(dòng)畫圖片可以除外),包含提醒圖像、人物、物品、地圖及其它圖像均放于一個(gè)圖片庫中。利益是減少了圖片控制模塊,而且一個(gè)圖片可以供多個(gè)模塊調(diào)用。動(dòng)畫節(jié)制:很好懂得的,把持動(dòng)畫的嗎!地圖把持:必定要注意,這一模塊只負(fù)責(zé)管理地圖庫、組

6、建地圖,但并不負(fù)責(zé)顯示地圖。人物管理:管理每個(gè)人物的信息(不包含對(duì)話信息)。物品管理:管理每個(gè)物品的信息。音樂管理:管理所有的音樂及其播放,音樂文件一般使用MIDI格局,如果你程度高點(diǎn)可以使用MP3格局。聲音管理:管理所有的聲音及其播放,聲音文件是WAV和VOC格局任選。劇情節(jié)制:最大、最難、最龐雜的一個(gè)模塊。治理其它的全體模塊,負(fù)責(zé)全部游戲的劇情發(fā)展。戰(zhàn)役掌握:負(fù)責(zé)站斗啦!自己用的工具嗎,先容一下:圖片管理器:負(fù)責(zé)管理圖片庫,請(qǐng)求可以隨便參加、刪除圖片,為圖片庫樹立索引以便游戲調(diào)用。地圖編纂器:編纂輿圖用的嗎!用它來造輿圖,然后形成專用的文件格式。動(dòng)畫編纂器:造動(dòng)畫用的,如果懶的造動(dòng)畫那就算

7、了,。人物信息管理器:編輯人物信息的工具。物品信息管理器:編輯物品信息的工具。劇情腳本編輯器:又是最大、最難、最龐雜的一個(gè),用來編寫劇情文件用的。音樂管理器:管理音樂庫的工具。聲音管理器:管理聲音庫的工具??赐炅耍遣皇且肯铝?!沒事,慢慢來嗎!一個(gè)人造個(gè)游戲最快也要2年!程式設(shè)計(jì)三顯示方面的程式設(shè)計(jì)上一章里,我們闡明了作為一個(gè)游戲的程式設(shè)計(jì)所須要完成的工作。在這一章,我們將有關(guān)圖形方面的程式設(shè)計(jì)內(nèi)容具體給大家說一下,優(yōu)派液晶顯示器顯示屏幕下沉怎么辦。首先聲名一下,無論您的游戲采取那一種清楚度,本文所說的內(nèi)容都實(shí)用于您。一、2D驅(qū)動(dòng)程序如果是編寫Windows9x下游戲的話,2D顯示驅(qū)動(dòng)程序的

8、代表作重要有Microsoft公司推出的DirectX中的DirectDraw和SciTech公司的WinDirect、MGL。在DOS 下就顯得有些問題,現(xiàn)在市面上的顯示卡類型非常多,如果我們給每一個(gè)顯卡都編寫一個(gè)驅(qū)動(dòng)程序的話,那恐怕是相當(dāng)艱苦的。再說我們也不可能擁有每一種顯卡的具體材料。幸好在各種SVGA顯示卡呈現(xiàn)不久,由各大廠家結(jié)合推出了一個(gè)VESA尺度?,F(xiàn)在的顯卡幾乎可以說是全部都只持VESA尺度。所以,我們只要按VESA尺度進(jìn)行顯示卡編程,就可以獲得最大的兼容性。二、3D驅(qū)動(dòng)程序編寫3D游戲的話,3D驅(qū)動(dòng)程序接口無非就是OpenGL和Direct3D兩種。如果你想編寫Windows下

9、的游戲的話,那么選擇那一個(gè)都一樣。如果編寫DOS游戲的話,使用OpenGL當(dāng)然不會(huì)錯(cuò)。注:由于3D游戲所涉及的規(guī)模較大,所以在以后我們將不討論3D游戲的制造。(到SciTech公司的網(wǎng)頁上往轉(zhuǎn)轉(zhuǎn),這個(gè)公司提供的WinDirect、MGL開發(fā)庫供給了完全的2D與3D支撐(DOS/Windows9x),而且還供給了DOS下的OpenGL 3D引擎)注:MGL開發(fā)庫同時(shí)有DOS版和Windows9x版。三、無規(guī)矩圖片庫的管理這里所說的圖片庫包括了全部游戲所使用到的任何圖片,想必您也可以猜到,這個(gè)圖片庫將會(huì)變得相當(dāng)大。如何管理這樣一個(gè)數(shù)據(jù)量極大的圖片庫,成了現(xiàn)在的重要問題。游戲中所使用的圖片有大有小,

10、也就是說,圖片庫中的圖片數(shù)據(jù)長度不固定。這也為我們管理圖片庫增添了難度。圖片管中的圖片地位是無規(guī)律的,但是我們可以樹立一個(gè)有規(guī)律的索引表來治理這個(gè)圖片庫。由于每個(gè)圖片的索引長度是一樣的,也就是說是有規(guī)律的。這樣一來,管理就容易多了。索引文件的基礎(chǔ)結(jié)構(gòu)如下:文件頭,圖片個(gè)數(shù),第1個(gè)圖片在圖片庫中的地址,最后一個(gè)圖片在圖片庫中的地址圖片庫的根本構(gòu)造如下:文件頭,第1個(gè)圖片的數(shù)據(jù),最后一個(gè)圖片的數(shù)據(jù)然而,就算是這樣,全部圖片庫的治理仍然不便利。比如說有一張圖片的編號(hào)是105,而在中途我們刪除了第85張圖片。當(dāng)下次再調(diào)用第105張圖片時(shí),就會(huì)發(fā)明調(diào)用的是本來的第106張圖片。為懂得決這個(gè)問題,我們將索

11、引文件的構(gòu)造改良如下: 索引構(gòu)造:struct PicIdxchar PicName 兩幅圖像的融合真正的兩幅圖像融合的實(shí)現(xiàn)方式并不龐雜,但是如果不使用MMX技術(shù)的話,速度會(huì)非常慢,關(guān)于交易網(wǎng)上的虛擬物品交易題目。為了加快速度,這里提出一種快速的偽融會(huì)辦法。速度很快,如今最受歡迎的網(wǎng)絡(luò)游戲有哪些?,但只能進(jìn)行50%的融合處理。我們假設(shè)一幅圖片被扎了很多孔,只要這些孔即多又散布均勻,我們就可以看明白在這幅圖片的后面是什么了。想必大家也想出來是什么辦法了。假設(shè)我們要將圖一與圖二進(jìn)行融會(huì),我們可以做如下處置。x,y分辨表示行坐標(biāo)與列坐標(biāo)。步驟一:顯示圖像一,,但只顯示(x%2)=(y%2)的點(diǎn)。注:

12、x%2表現(xiàn)求X除2的余數(shù)。步驟二:在同一地位顯示圖像二,但只顯示(x%2)!=(y%2)的點(diǎn)。注!=表示不即是。只此兩步,兩幅圖像的融合就完成了。瞧見左邊的這幅灰色圖塊了嗎,其實(shí)它是由玄色和白色兩種色彩進(jìn)行上述融合后的產(chǎn)物。讓我們將它放大4倍再看看吧(右圖)。人物影子的即時(shí)生成想必很多程序員都為此問題煩腦過,這首歌是我和僵尸有個(gè)約會(huì)里出現(xiàn)過的是達(dá)明一派彈吉他的,實(shí)在很簡(jiǎn)略。我這里有一個(gè)解決方法,同"云風(fēng)"工作室的解決措施一樣。即采取即時(shí)天生的措施,生成的效果很不錯(cuò)。此時(shí),我們?cè)O(shè)陽光從西南方照下,即影子在人的東北方。 步驟一:將原人物圖像非透明部分全體變黑。步驟二:將變黑后的

13、圖像高度緊縮當(dāng)本來的25%,仰看星空的歌詞。步驟三:再將圖像右傾45度。經(jīng)過以上三步,一個(gè)影子便完成了。如圖所示。原人物圖像全體變黑后的圖像高度緊縮四分之三后的圖像右傾45度后的圖像,即為生成的影子在游戲中,直接將處置成的影子先于人像這前顯示出來,顯示時(shí)與背景進(jìn)行50%融會(huì)。然后再顯示人像。 - -斜視角游戲中全屏雨雪效果的實(shí)現(xiàn)即使將地上展?jié)M雪花,也比不上天上飄下兩朵雪花那么讓人激動(dòng)。這是筆者在云風(fēng)工作室讀到的一句話。此話得確不錯(cuò),惋惜雪花并不那么容易就會(huì)飄下來,誰能告訴我2010-03-22/23/24/25/26星空衛(wèi)視播放的名偵察柯南是第幾集了?。實(shí)在在非斜視角游戲中,全屏雨雪效果很輕易

14、實(shí)現(xiàn)。只是在斜視角游戲中不輕易實(shí)現(xiàn)。這里先容一種方式可以在斜視角游戲中實(shí)現(xiàn)全屏雨雪效果。不知大家會(huì)不會(huì)用3DS MAX,不會(huì)用可糟了,我們這里要用到它。使用3DS MAX的粒子體系天生一幅全屏雨雪著落的動(dòng)畫,當(dāng)然不要忘了將視角旋轉(zhuǎn)一下以便同游戲中一致。然后將3DS MAX的渲染功效封閉,再天生持續(xù)的單幅圖像就可以供游戲使用了。 - -隔行抽絲隔行抽絲一般用在動(dòng)畫上,誅仙青云的怎樣升級(jí)快點(diǎn)?,使用的目標(biāo)是為了減少占用的空間,。一般來說,隔行抽絲是在屏幕上顯示時(shí),屏幕上的單數(shù)行或偶數(shù)行沒有內(nèi)容。假設(shè)底本的圖像或動(dòng)畫大小是800x600,經(jīng)過隔行抽絲后,在顯示時(shí)的大小就是800x300。所以在保留時(shí)

15、我們可以將圖像或動(dòng)畫保存成800x300的,這可謂正宗的隔行抽絲了,惋惜效果不好。實(shí)在,我們只要將圖像或動(dòng)畫保留成400x300的就可以了。在顯示時(shí)將寬度放大一倍,不但節(jié)儉了硬盤占用空間,而且效果很不錯(cuò),。不過會(huì)使裝進(jìn)速度減慢,但也不失為良策。我另有一個(gè)建議,隔行抽絲一般是應(yīng)用在動(dòng)畫上的。假如使用隔行抽絲技術(shù),將畫面保留成400x300,顯示時(shí)不但會(huì)使動(dòng)畫裝入速度減慢,而且效果遠(yuǎn)不如隔行抽絲前的好、播放的速度也快不了多少。我以為,使用隔行抽絲技巧在800x600顯示模式下播放400x300的動(dòng)畫,還不如直接將顯示模示動(dòng)態(tài)的改為400x300。不但后果很好,而且在速度上比使用隔行抽絲技巧要快的多。反正是放動(dòng)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論