久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于51單片機驅(qū)動LCD12864液晶設(shè)計貪吃蛇總結(jié)分享

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:56662 發(fā)表于 2013-11-15 02:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
在單片機中,以往我看到前輩們學(xué)長們做貪吃蛇的時候不是用匯編就是用FPGA語言編寫。那我就在想,C語言可是最簡單的語言。怎么不用C語言寫呢。首先我們必須要知道。在設(shè)計單片機游戲時。我們要知道設(shè)計游戲的概念,對于大部分單片機+LCD的游戲設(shè)計,基本采用前后臺方式,就是一個臺中斷,一個臺循環(huán) ,LCD部分基本是以固定點陣形式設(shè)計,什么叫固定點陣??首先先明確,我們設(shè)計的游戲不是什 么魔獸爭霸或CS,而是黑白形式的固定點陣游戲,例如常見著名游戲貪吃蛇或俄羅斯方塊。他們的每個點 都是預(yù)先就固定下來的,而且是比較大的點,這類專門的游戲機玻璃是經(jīng)過廠家開模出來 的,有固定的COM,SEG線,然后接到專門的單片機上,例如常用的6502指令集合的單片機。對于業(yè)余設(shè)計的游戲,我們一般用如128*64的LCD來顯示,那么我們設(shè)計的時候首先應(yīng)該把 這個128*64的LCD分塊,也就是分出固定點陣出來。LCD的基本點陣是128*64,就是· ¥##¥總之就是好多個點啦,但我們事實上不一定要運算這么多個點,除非你做的游戲很 有看頭。例如你只用左邊64*64的地方來做貪吃蛇,那么你打算你的貪吃蛇的活動空間是多 少呢?如果是8*8個點的話,算一下就是每個點64/8,64/8,也就是8*8個基本點陣,不過想好玩一點,當(dāng)然就是要有16*16個點的活動空間啦,那么每個固定點陣就要占4*4的基本 點陣了。要注意,這些4*4的東西在64*64LCD上共16*16個,每個都要用來獨立運算。

第二就是時鐘:這個其實是游戲的速度,對于一般的弱智類游戲機,他也代表了難度,物體在每個時鐘到 達的時候就傳動一次,例如俄羅斯方塊沒個時刻向下跑一層。賽車游戲每個時刻想前走一 步。一般這類時鐘的時間在0.X秒到1秒之間,物體有規(guī)律地勻速運動,讓人看到感覺是連 動。

第三運動:在這里,我先介紹兩種比較普遍的弱智游戲機的物體運動規(guī)則:柔體傳動,剛體傳動。 剛體傳動 代表作是俄羅斯方塊,所謂剛體,就是硬硬的一個東東,運動的時候也不怎么旋轉(zhuǎn)(注 意,俄羅斯方塊是會旋轉(zhuǎn),但其實他是沒有經(jīng)過算法的旋轉(zhuǎn),純提取數(shù)組的方式,也就是 把一個放塊做成4個模式的點陣結(jié)構(gòu),其實就是4個方向,呵呵)對于剛體的傳動,在每個 時鐘到達的時候向一個方向(很可能是用戶輸入的)運動一個固定點陣。如果以坐標(biāo)來表 達,就是物體的所有基本點陣同時向一個方向(X或Y)移動一個單位。 柔體傳動
代表作是貪吃蛇,貪吃蛇跑動的時候并不是整條蛇向一個方向動的(呵呵,蛇蛇身體僵硬 了),而是在每個時鐘的到來,物體由能量頭帶動(如蛇頭),每個點的方向都向下一個 點傳播,然后自己向新的方向走動一步,走動后,下一個點由于得到了上一個點的方向并
同樣地運動一步,所以,他會馬上填補上一個點的地方,如此類推。 說的好象沒說,看不懂沒關(guān)系,因為實際的算法可以簡化(傻瓜才會一個個點來走的), 實際上在設(shè)計貪吃蛇的時候,只需要把蛇尾巴的那個點陣去掉,然后在蛇頭的新方向放一 個點陣就是了。期間需要記錄下每個蛇身的固定點陣的位置,并且在每個運動時刻過后刷 新一次每個點的位置。

第四顯示接口: 我們用的一般是點陣式LCD,就是一大片點點,128*64,132*64,240*128等等等等啦,這 些又叫條屏,就是一寫就寫一條——8個點(有的也提供寫一個點的功能,但貴,至少我沒 有),那么如果你只想寫一個點怎么辦?那就得先把這個點所在的條讀出來,然后通過 與,或,的運算后,再放回到LCD上,這時候就要涉及到一個讀LCD的問題了,有的LCD提供 讀的功能,你寫過什么在上面他記的很清楚,但有的便宜貨 就不行了,那么我們怎么辦?沒關(guān)系,你在內(nèi)存中提取出一片空間,虛擬一個LCD出來,每 次寫在真實LCD上面的時候,也同時寫到內(nèi)存的哪個虛擬LCD上,那么你要讀出LCD的值的時 候?qū)嶋H就是讀出虛擬LD上的數(shù)據(jù),然后與或后,再重新寫到LCD上,記得也要寫到虛擬LCD 上哦。你可以把這片緩沖叫做顯存,

第五。游戲流程:蛇向一個固定方向進行柔體傳動,沒個運動時鐘到達要做:1。判斷食物標(biāo)志,沒有食物了 就放一個,放的時候判斷,不能和蛇身重疊 2。得到用戶按鍵值,蛇走一步,并判斷是否 撞死了,沒撞死,再判斷是否吃到東西了,沒有吃到,就等下一個運動時鐘,吃了?就增 長一點。置一個沒有食物的標(biāo)志。然后等待下一個時刻的來臨。 呵呵,其實程序就是這么簡單,基本設(shè)計只有LCD部分和按鍵部分是和單片機有關(guān)的,其他 都是程序思維和算法。對于菜鳥來說,難度在于思維,而不是單片機。


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

使用道具 舉報

沙發(fā)
ID:58168 發(fā)表于 2013-12-25 20:09 | 只看該作者
正好在做啊
回復(fù)

使用道具 舉報

板凳
ID:64606 發(fā)表于 2014-8-1 12:19 | 只看該作者
贊贊贊,,,
回復(fù)

使用道具 舉報

地板
ID:94279 發(fā)表于 2015-11-1 12:51 | 只看該作者
給你贊,加油,看星星一顆兩顆三顆四顆貪吃蛇
回復(fù)

使用道具 舉報

5#
ID:110866 發(fā)表于 2016-4-17 09:38 | 只看該作者
思想不錯
回復(fù)

使用道具 舉報

6#
ID:115825 發(fā)表于 2016-4-21 23:11 | 只看該作者
不錯 正在學(xué)習(xí) 51
回復(fù)

使用道具 舉報

7#
ID:120877 發(fā)表于 2016-5-24 22:39 | 只看該作者
正在做,顯示亂碼
回復(fù)

使用道具 舉報

8#
ID:125378 發(fā)表于 2017-2-24 20:04 | 只看該作者
第三運動:在這里,我先介紹兩種比較普遍的弱智游戲機的物體運動規(guī)則:柔體傳動,剛體傳動。 剛體傳動 代表作是俄羅斯方塊,所謂剛體,就是硬硬的一個東東,運動的時候也不怎么旋轉(zhuǎn)(注 意,俄羅斯方塊是會旋轉(zhuǎn),但其實他是沒有經(jīng)過算法的旋轉(zhuǎn),純提取數(shù)組的方式,也就是 把一個放塊做成4個模式的點陣結(jié)構(gòu),其實就是4個方向,呵呵)對于剛體的傳動,在每個 時鐘到達的時候向一個方向(很可能是用戶輸入的)運動一個固定點陣。如果以坐標(biāo)來表 達,就是物體的所有基本點陣同時向一個方向(X或Y)移動一個單位。 柔體傳動  代表作是貪吃蛇,貪吃蛇跑動的時候并不是整條蛇向一個方向動的(呵呵,蛇蛇身體僵硬 了),而是在每個時鐘的到來,物體由能量頭帶動(如蛇頭),每個點的方向都向下一個 點傳播,然后自己向新的方向走動一步,走動后,下一個點由于得到了上一個點的方向并  同樣地運動一步,所以,他會馬上填補上一個點的地方,如此類推。 說的好象沒說,看不懂沒關(guān)系,因為實際的算法可以簡化(傻瓜才會一個個點來走的), 實際上在設(shè)計貪吃蛇的時候,只需要把蛇尾巴的那個點陣去掉,然后在蛇頭的新方向放一 個點陣就是了。期間需要記錄下每個蛇身的固定點陣的位置,并且在每個運動時刻過后刷 新一次每個點的位置。  第四顯示接口: 我們用的一般是點陣式LCD,就是一大片點點,128*64,132*64,240*128等等等等啦,這 些又叫條屏,就是一寫就寫一條——8個點(有的也提供寫一個點的功能,但貴,至少我沒 有),那么如果你只想寫一個點怎么辦?那就得先把這個點所在的條讀出來,然后通過 與,或,的運算后,再放回到LCD上,這時候就要涉及到一個讀LCD的問題了,有的LCD提供 讀的功能,你寫過什么在上面他記的很清楚,但有的便宜貨 就不行了,那么我們怎么辦?沒關(guān)系,你在內(nèi)存中提取出一片空間,虛擬一個LCD出來,每 次寫在真實LCD上面的時候,也同時寫到內(nèi)存的哪個虛擬LCD上,那么你要讀出LCD的值的時 候?qū)嶋H就是讀出虛擬LD上的數(shù)據(jù),然后與或后,再重新寫到LCD上,記得也要寫到虛擬LCD 上哦。你可以把這片緩沖叫做顯存,
回復(fù)

使用道具 舉報

9#
ID:239385 發(fā)表于 2017-12-9 15:25 | 只看該作者
總結(jié)的很不錯
回復(fù)

使用道具 舉報

10#
ID:276853 發(fā)表于 2018-1-17 10:06 | 只看該作者
好多東西都不懂
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美国产精品一区二区 | 91在线视频播放 | 国产成人精品久久二区二区91 | 夜夜操天天操 | 免费在线成人 | 国产精品毛片 | 在线国产一区二区 | 国产视频亚洲视频 | 精品一区二区在线视频 | 久久久久久女 | 精品国产乱码久久久久久闺蜜 | caoporn国产精品免费公开 | 国产精品免费在线 | 看真人视频一级毛片 | 国产情品 | 国产成人一区二区三区 | 亚洲精品免费视频 | 成人日b视频 | 久久精品国产亚洲一区二区三区 | 一区二区不卡高清 | 国产目拍亚洲精品99久久精品 | 久久久精选 | www.日日干 | 999精品在线观看 | 新超碰97 | 亚洲欧美成人影院 | 福利在线看 | 欧美中文字幕一区二区三区亚洲 | 高清国产午夜精品久久久久久 | 亚洲精品久久嫩草网站秘色 | 毛片一区二区三区 | 亚洲精品一区在线 | 性一交一乱一透一a级 | 成人免费视频网站在线观看 | av特级毛片| 国产偷录叫床高潮录音 | 国产高清免费视频 | 久草成人 | 国产一二区在线 | 91精品国产综合久久久动漫日韩 | 中文字幕国产视频 |