找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2840|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

發(fā)布彈球游戲終極版本,并談?wù)勥@幾天的編程體會

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:107189 發(fā)表于 2016-3-4 19:31 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

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

第三種,按位異或重畫法,利用位運算中的異或運算重畫,節(jié)約時間效率高并且不會覆蓋背景,我的最終版本就是這種方法畫的。
解決了動畫,很大程度上就解決了游戲。
最后加入控制系統(tǒng),判斷系統(tǒng),計時系統(tǒng),等等,加上美工,就可以做出小游戲作品。
但是這樣的游戲還是很不完善的,功能少,效率低,有時還會閃屏。解決這些問題我目前還不會,以后可以研究研究。
附錄1:四個版本游戲的比較:
V1.1:簡單的上下移動,把程序的內(nèi)核部分編好了。




V1.2:加入顏色元素,版可以上下左右移動,但是有較多BUG,是一個不完善的版本。
V1.3:加入開頭效果,解決了大部分BUG,加入聲音元素,使可玩性大大提高。
V1.4:圖形界面重新設(shè)計,修復(fù)BUG,加入了進球特效,游戲趨于完整。

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




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表