單片機(jī)游戲設(shè)計(jì)之貪吃蛇用C語言也是有可能的
第二就是時(shí)鐘:這個(gè)其實(shí)是游戲的速度,對(duì)于一般的弱智類游戲機(jī),他也代表了難度,物體在每個(gè)時(shí)鐘到 達(dá)的時(shí)候就傳動(dòng)一次,例如俄羅斯方塊沒個(gè)時(shí)刻向下跑一層。賽車游戲每個(gè)時(shí)刻想前走一 步。一般這類時(shí)鐘的時(shí)間在0.X秒到1秒之間,物體有規(guī)律地勻速運(yùn)動(dòng),讓人看到感覺是連動(dòng)。
本文引用地址:http://m.butianyuan.cn/article/201611/323680.htm第三運(yùn)動(dòng):在這里,我先介紹兩種比較普遍的弱智游戲機(jī)的物體運(yùn)動(dòng)規(guī)則:柔體傳動(dòng),剛體傳動(dòng)。 剛體傳動(dòng) 代表作是俄羅斯方塊,所謂剛體,就是硬硬的一個(gè)東東,運(yùn)動(dòng)的時(shí)候也不怎么旋轉(zhuǎn)(注 意,俄羅斯方塊是會(huì)旋轉(zhuǎn),但其實(shí)他是沒有經(jīng)過算法的旋轉(zhuǎn),純提取數(shù)組的方式,也就是 把一個(gè)放塊做成4個(gè)模式的點(diǎn)陣結(jié)構(gòu),其實(shí)就是4個(gè)方向,呵呵)對(duì)于剛體的傳動(dòng),在每個(gè) 時(shí)鐘到達(dá)的時(shí)候向一個(gè)方向(很可能是用戶輸入的)運(yùn)動(dòng)一個(gè)固定點(diǎn)陣。如果以坐標(biāo)來表 達(dá),就是物體的所有基本點(diǎn)陣同時(shí)向一個(gè)方向(X或Y)移動(dòng)一個(gè)單位。 柔體傳動(dòng)
代表作是貪吃蛇,貪吃蛇跑動(dòng)的時(shí)候并不是整條蛇向一個(gè)方向動(dòng)的(呵呵,蛇蛇身體僵硬 了),而是在每個(gè)時(shí)鐘的到來,物體由能量頭帶動(dòng)(如蛇頭),每個(gè)點(diǎn)的方向都向下一個(gè) 點(diǎn)傳播,然后自己向新的方向走動(dòng)一步,走動(dòng)后,下一個(gè)點(diǎn)由于得到了上一個(gè)點(diǎn)的方向并
同樣地運(yùn)動(dòng)一步,所以,他會(huì)馬上填補(bǔ)上一個(gè)點(diǎn)的地方,如此類推。 說的好象沒說,看不懂沒關(guān)系,因?yàn)閷?shí)際的算法可以簡(jiǎn)化(傻瓜才會(huì)一個(gè)個(gè)點(diǎn)來走的), 實(shí)際上在設(shè)計(jì)貪吃蛇的時(shí)候,只需要把蛇尾巴的那個(gè)點(diǎn)陣去掉,然后在蛇頭的新方向放一 個(gè)點(diǎn)陣就是了。期間需要記錄下每個(gè)蛇身的固定點(diǎn)陣的位置,并且在每個(gè)運(yùn)動(dòng)時(shí)刻過后刷 新一次每個(gè)點(diǎn)的位置。
第四顯示接口: 我們用的一般是點(diǎn)陣式LCD,就是一大片點(diǎn)點(diǎn),128*64,132*64,240*128等等等等啦,這 些又叫條屏,就是一寫就寫一條——8個(gè)點(diǎn)(有的也提供寫一個(gè)點(diǎn)的功能,但貴,至少我沒 有),那么如果你只想寫一個(gè)點(diǎn)怎么辦?那就得先把這個(gè)點(diǎn)所在的條讀出來,然后通過 與,或,的運(yùn)算后,再放回到LCD上,這時(shí)候就要涉及到一個(gè)讀LCD的問題了,有的LCD提供 讀的功能,你寫過什么在上面他記的很清楚,但有的便宜貨 就不行了,那么我們?cè)趺崔k?沒關(guān)系,你在內(nèi)存中提取出一片空間,虛擬一個(gè)LCD出來,每 次寫在真實(shí)LCD上面的時(shí)候,也同時(shí)寫到內(nèi)存的哪個(gè)虛擬LCD上,那么你要讀出LCD的值的時(shí) 候?qū)嶋H就是讀出虛擬LD上的數(shù)據(jù),然后與或后,再重新寫到LCD上,記得也要寫到虛擬LCD 上哦。你可以把這片緩沖叫做顯存,
第五。游戲流程:蛇向一個(gè)固定方向進(jìn)行柔體傳動(dòng),沒個(gè)運(yùn)動(dòng)時(shí)鐘到達(dá)要做:1。判斷食物標(biāo)志,沒有食物了 就放一個(gè),放的時(shí)候判斷,不能和蛇身重疊 2。得到用戶按鍵值,蛇走一步,并判斷是否 撞死了,沒撞死,再判斷是否吃到東西了,沒有吃到,就等下一個(gè)運(yùn)動(dòng)時(shí)鐘,吃了?就增 長(zhǎng)一點(diǎn)。置一個(gè)沒有食物的標(biāo)志。然后等待下一個(gè)時(shí)刻的來臨。 呵呵,其實(shí)程序就是這么簡(jiǎn)單,基本設(shè)計(jì)只有LCD部分和按鍵部分是和單片機(jī)有關(guān)的,其他 都是程序思維和算法。對(duì)于菜鳥來說,難度在于思維,而不是單片機(jī)。本程序源代碼可從http://www.51hei.com/bbs/dpj-18901-1.html處下載。
仿真效果如下:
評(píng)論