亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于單片機的貪吃蛇游戲的實現(xiàn)

        2020-09-10 07:22:44吳尚茗楊麗燕劉亞榮
        科技尚品 2020年6期
        關(guān)鍵詞:STM32單片機

        吳尚茗 楊麗燕 劉亞榮

        摘 要:文章是基于ALIENTEK精英STM32開發(fā)板,在μC/OS-II嵌入式操作系統(tǒng)下,用C語言進(jìn)行的簡單貪吃蛇游戲設(shè)計。本游戲設(shè)計主要利用觸屏顯示模塊、LED測試模塊和RTC時鐘模塊來控制游戲運行。利用LCD觸摸屏實現(xiàn)四個輕觸按鍵,將按鍵信息發(fā)送至郵箱,控制上下左右,實現(xiàn)貪吃蛇的簡單吃豆、計數(shù)和整個游戲界面顯示等相應(yīng)功能。

        關(guān)鍵詞:貪吃蛇游戲;STM32單片機;μC/OS-II嵌入式操作系統(tǒng)

        中圖分類號:TP368.12 文獻(xiàn)標(biāo)識碼:A

        手機游戲的歷史已經(jīng)超過十年,其是現(xiàn)代生活的一種娛樂方式。貪吃蛇游戲作為早期的嵌入式開發(fā)游戲,雖然游戲內(nèi)容和畫面都很簡單,但在手機游戲出現(xiàn)的早期,其是一款相當(dāng)經(jīng)典的游戲[1]。

        1 總體方案設(shè)計

        本次設(shè)計的主要硬件模塊,選擇使用ALIENTEK精英STM32開發(fā)板?;陂_發(fā)板的Cotrex-M3內(nèi)核,及μC/OS-II嵌入式操作系統(tǒng),將μC/OS-II嵌入式操作系統(tǒng)移植到ALIENTEK精英STM32開發(fā)板上。在μC/OS-II嵌入式操作系統(tǒng)下,利用單片機的內(nèi)設(shè)LED顯示燈模塊以及RTC系統(tǒng)時鐘等兩個模塊相互配合,并結(jié)合STM32搭載外設(shè)4.3寸TFTLCD液晶顯示屏的顯示和觸摸功能,來實現(xiàn)貪吃蛇游戲的簡單吃豆、計數(shù)以及整個游戲界面顯示等相應(yīng)功能。系統(tǒng)總體設(shè)計框圖如圖1所示。

        2 游戲的軟件設(shè)計

        2.1 系統(tǒng)總程序設(shè)計

        本游戲從游戲開始后進(jìn)行難度選擇,通過選擇難度確定蛇運動的速度,由此開始游戲。開始游戲時,蛇首先向指定方向運動,再通過按鍵控制蛇的運動方向以及游戲的暫停與開始。如果蛇吃到食物,則蛇身增長;如果蛇碰到自身和墻壁,則游戲結(jié)束,通過觸屏按鍵重新開始游戲。游戲的總流程圖如圖2所示。

        2.2 優(yōu)先級任務(wù)設(shè)計

        在μC/OS-II嵌入式操作系統(tǒng)下,軟件設(shè)計要分不同任務(wù)進(jìn)行設(shè)計,且每個任務(wù)按各自優(yōu)先級高低順序執(zhí)行,任務(wù)之間通過信號量及消息郵箱進(jìn)行通信。

        此次設(shè)計主要創(chuàng)建三個不同優(yōu)先級別的任務(wù):LED任務(wù)(led_task)、觸摸屏任務(wù)(touch_tesk)、貪吃蛇任務(wù)(snake_task)。優(yōu)先級的順序為touch_tesk>snake_task>led_tesk。即開始游戲就執(zhí)行貪吃蛇任務(wù),如果屏幕掃描到有觸摸按鍵按下,就發(fā)送觸摸事件消息到郵箱;此時,游戲任務(wù)從郵箱中獲取消息,開始執(zhí)行游戲任務(wù)。

        優(yōu)先級任務(wù)設(shè)計流程圖如圖3所示。

        2.3 游戲顯示任務(wù)設(shè)計

        設(shè)計的主要思路為,將屏幕界面分為按鍵控制模塊和游戲界面模塊,初始頁面使用LCD的畫鍵盤功能設(shè)計游戲等級,選擇等級后清屏進(jìn)入游戲界面。游戲界面將屏幕分成720個小方塊,即地圖上有720個點,每個點的數(shù)值代表0位空地,大于0為蛇身,-1為食物。一開始設(shè)定所有的點都為0,利用RTC時鐘隨機將一個點的數(shù)值設(shè)為-1,再將連續(xù)3個點分別置1、2、3代表蛇身,這就是貪吃蛇的初始長度,之后蛇身數(shù)值增長,因此蛇身的數(shù)值都是大于1的。

        2.4 蛇身運動設(shè)計

        根據(jù)輸入的鍵位值來確定蛇的方向。蛇的運動方式為柔體傳動,即蛇身的位置不變,蛇頭向相應(yīng)的方向前進(jìn),蛇尾相對于上一次響應(yīng)減少一個方塊,而不是輸入某一個方向后整體向同一個方向移動。

        因此,在設(shè)計時要定義一個數(shù)組map[i],用來儲存蛇身的數(shù)據(jù),用LCD寫入顏色的功能將這個數(shù)組涂上貪吃蛇的顏色。定義蛇尾為1,蛇頭每前進(jìn)一步,len增長,map值自加,向前的格子涂上蛇身顏色。同時,通過坐標(biāo)檢測確定蛇并沒有吃到食物,此時使用len自減。這樣,貪吃蛇的總長度就沒有發(fā)生變化。將map=1的格子涂上白色,即去掉蛇尾,再將map自減,完成蛇的一次向前運動。同理,如果蛇吃到了食物,則將食物涂為蛇身顏色,此時len增長,map增長,且將不做自減。此時,蛇再進(jìn)行向前運動。

        具體實現(xiàn)細(xì)節(jié)如下。

        2.4.1 判斷蛇的移動方向

        初始時將cl定義為蛇的運動方向,當(dāng)觸屏任務(wù)將發(fā)送指令時,蛇頭向相應(yīng)位置的坐標(biāo)增加,即蛇向相應(yīng)的方向移動。在運動過程中,如果輸入的運動方向與貪吃蛇正在運動的運動方向相反,則會發(fā)生反向運動。為了避免反向運動造成程序運行錯誤,需要判定運動方向不為指令方向的反方向。

        2.4.2 判斷蛇是否吃到食物

        根據(jù)蛇頭的坐標(biāo)與食物的坐標(biāo)是否相等,來判斷蛇是否吃到食物。如果吃到食物,則蛇的長度和游戲分?jǐn)?shù)均加1,并執(zhí)行RTC時鐘指令,出現(xiàn)下一個食物。吃掉食物后,蛇的關(guān)節(jié)數(shù)加1,并根據(jù)蛇的移動重新畫出蛇的身體。

        2.5 結(jié)束任務(wù)設(shè)計

        根據(jù)設(shè)定的游戲區(qū)域范圍,如果蛇頭的坐標(biāo)超過該范圍,即相當(dāng)于蛇撞墻死掉,游戲結(jié)束;當(dāng)蛇長超過3的時候,就有可能與自身相撞,判斷當(dāng)蛇頭的坐標(biāo)與蛇身體的任一坐標(biāo)相等時,蛇就死掉,游戲結(jié)束。判斷如果蛇的sh.x和sh.y在設(shè)定的區(qū)域外或map[sh.y * 30 + sh.x]大于1,則說明蛇死掉,就觸發(fā)游戲結(jié)束。

        蛇死掉后,游戲任務(wù)觸發(fā)信號量,開啟時鐘延時。此時,游戲結(jié)束任務(wù)獲取信號量,開始執(zhí)行游戲結(jié)束任務(wù),即在LCD顯示屏上顯示“GAME OVER!”和“RESET”按鍵。點擊“RESET”按鍵,可以重新回到游戲頁面。

        3 結(jié)語

        本次設(shè)計實現(xiàn)了貪吃蛇游戲的基本功能:游戲開始時,通過方向鍵控制貪吃蛇的運動方向;當(dāng)貪吃蛇吃到隨機出現(xiàn)的食物時蛇身增長,當(dāng)蛇碰到墻壁或者自身時,蛇死亡,游戲結(jié)束。并且在按鍵、吃到食物以及貪吃蛇死亡時配合不同音效,同時游戲有三個可調(diào)節(jié)的難度供選擇

        參考文獻(xiàn)

        [1] 劉曉崢.淺析基于J2ME平臺的貪吃蛇游戲開發(fā)[J].科技視界,2013(17):38-39.

        猜你喜歡
        STM32單片機
        基于STM32單片機的脈沖信號參數(shù)高精度測試儀
        科技資訊(2017年3期)2017-03-25 01:42:48
        基于STM32芯片的移動機器人的避障研究
        基于單片機的灌裝生產(chǎn)線成品率計算裝置設(shè)計
        基于STM32的兩輪自平衡遙控小車設(shè)計
        科技視界(2016年26期)2016-12-17 08:35:54
        基于STM32單片機的智能手環(huán)設(shè)計與實現(xiàn)
        基于STM32單片機的數(shù)碼相框顯示系統(tǒng)設(shè)計
        基于STM32的多旋翼無人機超聲波測距系統(tǒng)
        試論STM32單片機在室內(nèi)環(huán)境監(jiān)測系統(tǒng)中的運用
        STM32單片機原理及硬件電路設(shè)計研究
        STM32單片機的高精度超聲波測距系統(tǒng)的設(shè)計
        日韩经典午夜福利发布| 18无码粉嫩小泬无套在线观看| 不卡高清av手机在线观看| 国产精品麻豆成人av| 国产一区二区三区av免费| 久久精品国产亚洲av无码娇色| 爱a久久片| 丝袜美腿一区二区在线观看| 久久在一区二区三区视频免费观看 | 成人短篇在线视频夫妻刺激自拍| 亚洲国产精品av在线| 男人激烈吮乳吃奶视频免费| 无遮挡十八禁在线视频国产制服网站 | 亚洲а∨精品天堂在线| 国产精品嫩草影院午夜| 色妞一区二区三区免费视频| 国产黑丝美女办公室激情啪啪 | 日韩欧美在线播放视频| 国产精品亚洲精品日产久久久| 亚洲中文字幕久久精品色老板| 少妇高潮惨叫久久久久久电影| 中文字幕国产欧美| 亚洲国产av午夜福利精品一区| 中文区中文字幕免费看| 人成午夜免费大片| 曰本亚洲欧洲色a在线| 就爱射视频在线视频在线| 亚洲男人av天堂午夜在| 欧美高清视频一区| 精品老熟女一区二区三区在线| 天堂中文最新版在线中文| 特黄aa级毛片免费视频播放| 亚洲一区二区三区最新视频| 国产精品一区二区av麻豆| 久久久久99精品国产片| av东京热一区二区三区| 色欲色香天天天综合网www| 午夜丰满少妇性开放视频| 日本成熟妇人高潮aⅴ| 日本熟女人妻一区二区| 蜜臀av 国内精品久久久|