標(biāo)題: 發(fā)布彈球游戲終極版本,并談?wù)勥@幾天的編程體會 [打印本頁]
作者: 51黑tt 時(shí)間: 2016-3-4 19:31
標(biāo)題: 發(fā)布彈球游戲終極版本,并談?wù)勥@幾天的編程體會
用了三天時(shí)間,大概十個(gè)小時(shí),終于把我的第一個(gè)游戲,彈球游戲從內(nèi)核編程到圖形聲音包裝做了出來,還是有很多感觸的。
現(xiàn)在不怎么玩游戲了,但小時(shí)候特別喜歡玩,小學(xué)畢業(yè)升初中那會兒我同學(xué)都準(zhǔn)備去報(bào)一個(gè)PASCAL編程班,我當(dāng)時(shí)什么都不懂,還以為就
是編游戲,特別開心,立刻就跟過去報(bào)名了。
上課以后才知道什么叫編程,與同學(xué)不同的是他們大多數(shù)以前都學(xué)過BASIC編程,對程序都有基礎(chǔ),我卻什么都不懂。
那時(shí)候老師教學(xué)方式和現(xiàn)在完全不同,上課只有一個(gè)目的,編程。對于語法,細(xì)節(jié)問題沒有什么深究,考試都是開卷的,語法不懂可以看
書,但是算法卻一定要自己想,我想一種結(jié)構(gòu)化程序設(shè)計(jì)的思想應(yīng)該就是那時(shí)打下的。
PASCAL后來學(xué)到數(shù)組函數(shù)文件就沒學(xué)了,高中看過一點(diǎn)c語言,但是指針一直沒有搞懂。
大學(xué)c語言課老師的教法我不敢茍同,搞得c語言只是一個(gè)用來考試的工具,他的實(shí)用性和趣味性給完全抹殺了。
當(dāng)時(shí)一直在想,c語言到底怎么編游戲呢?
后來看了一些書,又在網(wǎng)上找了一些資料,發(fā)現(xiàn)游戲編程實(shí)在復(fù)雜,首先需要懂一門程序語言,c/c++,java各有優(yōu)勢。然后需要會用圖形
庫,比如OPENGL或者directX,然后是數(shù)據(jù)庫,最重要的還是美工。什么ps,會聲會影肯定要會。
很明顯,上面的東西我一大半不會。
那我就不能編游戲了嘛?從文字到圖形是一個(gè)怎樣的飛躍?
普及一個(gè)常識,我們通常的編程是在文本模式下完成的,而游戲牽扯的圖形編程必須在圖形模式下實(shí)現(xiàn),這就需要圖形庫。
很明顯,openGL,directX這些大型圖形庫我都不會,那怎么樣才能以最低的門檻成功的繪制圖形呢?
上網(wǎng)找了半天,發(fā)現(xiàn)一款叫做easyx的軟件可以把turbo c的圖形庫加載在visual c++6.0上,而TC的圖形庫編程還是很簡單的,通過簡單的
畫線,畫矩形,畫圓就可以實(shí)現(xiàn)畫圖。
圖形是游戲的基礎(chǔ),但是光有圖還不行,還要實(shí)現(xiàn)運(yùn)動,即動畫,實(shí)現(xiàn)動畫是一個(gè)很有挑戰(zhàn)性的技術(shù)。
一般來講,有三種實(shí)現(xiàn)動畫的方法。
第一種,全局重畫法,把動畫分成一幀一幀的然后每一幀顯示后延遲幾毫秒,把前一張擦去,畫后一張。這種方法重復(fù)勞動嚴(yán)重,不推薦。
第二種,局部重畫法,即把整張圖中變化的部分重畫即可。我的彈球游戲1,2,3版本都是用的這種方法。
第三種,按位異或重畫法,利用位運(yùn)算中的異或運(yùn)算重畫,節(jié)約時(shí)間效率高并且不會覆蓋背景,我的最終版本就是這種方法畫的。
解決了動畫,很大程度上就解決了游戲。
最后加入控制系統(tǒng),判斷系統(tǒng),計(jì)時(shí)系統(tǒng),等等,加上美工,就可以做出小游戲作品。
但是這樣的游戲還是很不完善的,功能少,效率低,有時(shí)還會閃屏。解決這些問題我目前還不會,以后可以研究研究。
附錄1:四個(gè)版本游戲的比較:
V1.1:簡單的上下移動,把程序的內(nèi)核部分編好了。
V1.2:加入顏色元素,版可以上下左右移動,但是有較多BUG,是一個(gè)不完善的版本。

V1.3:加入開頭效果,解決了大部分BUG,加入聲音元素,使可玩性大大提高。

V1.4:圖形界面重新設(shè)計(jì),修復(fù)BUG,加入了進(jìn)球特效,游戲趨于完整。

總之,編一個(gè)游戲真不容易,我也只是興趣愛好,有興趣的同學(xué)可以和我一起,推薦一下百度的easyx貼吧,里面的教程挺好的,不要把c語言只當(dāng)做一個(gè)考試工具,其實(shí)他是非常強(qiáng)大的!
附錄2:游戲及源代碼下載地址:
http://www.rayfile.com/files/4a6629a6-9652-11e0-8913-0015c55db73d/
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |