資料介紹
描述
恐龍游戲 Arduino 版
介紹
我一直喜歡可穿戴電子產(chǎn)品,幾個(gè)月前我有一個(gè)便宜的 TFT 顯示器可以玩,最終目標(biāo)是熟悉所有電子產(chǎn)品,以便我可以嘗試縮小所有東西并制作一個(gè)(希望是便攜的) ) 智能手表。
我偶然發(fā)現(xiàn)了mrt-prodz為 arduino 開(kāi)發(fā)的 flappy bird 游戲,當(dāng)時(shí)我正在尋找一些帶有 TFT 顯示屏的好項(xiàng)目,在玩了幾次游戲之后,我決定用 chromium 構(gòu)建我自己的經(jīng)典“恐龍游戲”版本.
該項(xiàng)目的所有代碼文件和資產(chǎn)都可以在以下存儲(chǔ)庫(kù)中找到:
示意圖
我得到的 TFT 顯示器基于 ST7735 驅(qū)動(dòng) IC,同時(shí)它還有一個(gè) SD 卡插槽,由于我手頭沒(méi)有 SD 卡,我最終將所有需要的數(shù)據(jù)保存在閃存中。TFT 的接線有點(diǎn)痛苦,但多虧了Tweaking4all的幫助,我終于讓它運(yùn)行起來(lái)了。
蜂鳴器和按鈕的其他連接非常簡(jiǎn)單,無(wú)需解釋。我確實(shí)注意到,flappy bird 游戲?qū)嶋H上并沒(méi)有使用基于中斷的觸發(fā)器,而是具有正常的 digitalRead 功能。我決定使用內(nèi)部拉動(dòng)和外部中斷觸發(fā)的 ISR 通過(guò)數(shù)字引腳 2 為用戶(hù)輸入提供服務(wù)。
?
?
顯示器使用 SPI 通信,所以我最終使用 ardunio uno 的 SPI 硬件引腳與顯示器通信。Tinkercad 沒(méi)有 TFT 顯示器的模型,所以我只是標(biāo)記了連接并將它們放到面包板上。
我的最終設(shè)置是將所有東西都塞進(jìn)了一個(gè)小面包板,因?yàn)槲覜](méi)有比這更大的東西了。
我的 TFT 顯示器的另一個(gè)視圖供任何人參考
軟件
軟件堆棧可以分解為以下子任務(wù)
做一個(gè)會(huì)跳的盒子
這一步應(yīng)該相當(dāng)簡(jiǎn)單,人們實(shí)際上使用歐拉積分方法給物體一些力(加速度),然后使用非常小的 dt 數(shù)值計(jì)算速度和位移。
加速度 = 力 / 質(zhì)量Delta_{位置} = 速度 * dt Delta_{速度} = 加速度 * dt
由于某種原因,我最終使用了彈丸在恒定加速度下的運(yùn)動(dòng)方程。
y = ut + (1/2)at^2
每次按下按鈕時(shí),盒子的初始速度都是 $30 m/s$,我使用重力加速度值和初始速度來(lái)獲得正確的跳躍響應(yīng)。
畫(huà)仙人掌,讓它四處走動(dòng)
我使用了一些基本的形狀(圓角矩形)來(lái)制作一個(gè)仙人掌狀的物體,并在 -ve x 方向上給它一個(gè)恒定的速度,讓它看起來(lái)像恐龍?jiān)谙蚯耙苿?dòng)。
我使用了mrt-prodz帖子中討論過(guò)的畫(huà)筆方法來(lái)制作動(dòng)畫(huà),這基本上意味著我通過(guò)在舊像素上繪制背景顏色來(lái)擦除它們,然后在新像素上繪制所需的顏色,因此我不得不更改一些每幀中的選定像素,而不是整個(gè) 128x160 像素。
用恐龍?zhí)鎿Q盒子
接下來(lái)我嘗試用恐龍(位圖)替換盒子,看起來(lái)恐龍?jiān)诘匕迳匣?,而且非常人工?/font>
我決定讓恐龍行走,就像原來(lái)的游戲一樣,在從精靈表中剪下兩個(gè)行走的幀之后,我嘗試了一個(gè)簡(jiǎn)單的代碼,在這些幀之間切換,讓它看起來(lái)像恐龍?jiān)谛凶摺?/font>
步行與滑冰恐龍
上述方法取得了部分成功,因?yàn)橛捎诟滤俣?,整個(gè)恐龍圖像現(xiàn)在有一個(gè)奇怪的閃爍,我意識(shí)到我正在更新整個(gè)恐龍位圖,但大部分身體是靜止的,只有腿應(yīng)該移動(dòng)。
我最終通過(guò)將 2 個(gè)恐龍框架分成 2 個(gè)部分(總共 4 個(gè))來(lái)解決這個(gè)問(wèn)題,其中每個(gè)框架的頂部是身體,底部是腿,幸運(yùn)的是動(dòng)畫(huà)的設(shè)置方式是恐龍的身體實(shí)際上在兩幀之間從未改變,只有腿的位置發(fā)生了變化,所以我固定了身體,只更新了恐龍的腿部,這消除了大部分或全部的閃爍,最后我得到了一個(gè)非常流暢的動(dòng)畫(huà)。
添加云、聲音、樂(lè)譜和其他小細(xì)節(jié)
我現(xiàn)在添加了其他小細(xì)節(jié),如聲音、介紹和游戲幀。我還添加了分?jǐn)?shù)顯示和其他功能。我想為游戲提供一個(gè)像原版一樣多云的背景,因?yàn)樗粌H有助于美感,而且還可以顯示恐龍一直相對(duì)于背景移動(dòng)。
我厭倦了使用位圖中的云,但是云中的閃爍有點(diǎn)太多,而且它們的功能太小以至于我?guī)缀醪魂P(guān)心,所以我最終用常規(guī)的圓角矩形替換了位圖,這大大提高了游戲性能。
結(jié)果
在修復(fù)了幾個(gè)錯(cuò)誤之后,我終于有了一個(gè)可以工作的恐龍游戲
未來(lái)升級(jí)
雖然我沒(méi)有立即的改進(jìn)計(jì)劃,但我確實(shí)有一些我想實(shí)現(xiàn)的功能。
- 添加生命
- 迪諾有力量(噴火)
- 新障礙(鳥(niǎo)類(lèi)?)
- 消除由于跳躍引起的閃爍
- Arduino硬恐龍液晶游戲
- 在現(xiàn)實(shí)生活中控制的Chrome恐龍游戲
- Arduino記憶游戲
- 帶有OpenCV和Python的Google Chrome恐龍游戲
- Arduino游戲機(jī)
- 基于Arduino的2人游戲
- Arduino迷宮游戲開(kāi)源分享
- 使用Arduino UNO構(gòu)建游戲
- 如何使用游戲手柄模塊制作Arduino SNAKE游戲
- 基于Arduino MKR Zero的Chrome恐龍游戲 1次下載
- Arduino井字游戲和熄燈游戲開(kāi)源分享
- Arduino迷宮游戲
- 使用Arduino的自動(dòng)恐龍游戲
- 使用Tinkercad在Arduino上玩霸王龍恐龍游戲
- freecell.exe下載 (windows 空頭接龍游戲
- 如何使用Python和PinPong庫(kù)控制Arduino 718次閱讀
- 基于Arduino的機(jī)器學(xué)習(xí)開(kāi)發(fā) 1.7w次閱讀
- Arduino I/O函數(shù)詳解 2342次閱讀
- 如何使用Arduino Leonardo和MPU6050制作一個(gè)有線的手勢(shì)控制器 2625次閱讀
- 如何從網(wǎng)頁(yè)控制arduino? 3836次閱讀
- arduino如何控制舵機(jī)及詳細(xì)步驟 16.3w次閱讀
- arduino連接顯示屏方法詳解 4.7w次閱讀
- Arduino如何安裝驅(qū)動(dòng)_Arduino安裝驅(qū)動(dòng)步驟 5.8w次閱讀
- 淺談Arduino和樹(shù)莓派的區(qū)別 2.1w次閱讀
- avr和arduino之間有什么關(guān)系?avr單片機(jī)和arduino的優(yōu)點(diǎn)分析 3w次閱讀
- arduino串口通信 2.1w次閱讀
- arduino用什么語(yǔ)言編程 6.9w次閱讀
- arduino是什么以及arduino能干什么 4.4w次閱讀
- arduino開(kāi)發(fā)板有什么用 2w次閱讀
- arduino ide編譯過(guò)程 3203次閱讀
下載排行
本周
- 1無(wú)鉛焊接的可靠性
- 1.03 MB | 5次下載 | 1 積分
- 2GBT1094.11-2022電力變壓器第11部分:干式變壓器
- 14.12 MB | 3次下載 | 免費(fèi)
- 3PT500齒輪傳動(dòng)動(dòng)力學(xué)綜合測(cè)試實(shí)驗(yàn)臺(tái)
- 0.16 MB | 3次下載 | 免費(fèi)
- 4爬電距離和電氣間隙計(jì)算
- 0.75 MB | 2次下載 | 1 積分
- 5SX1308應(yīng)用電路圖與SX1308升壓電路圖
- 0.18 MB | 1次下載 | 免費(fèi)
- 6ADC參數(shù)單位換算
- 761.94KB | 1次下載 | 免費(fèi)
- 7串口工具UartAssist5.0.exe
- 0.60 MB | 1次下載 | 免費(fèi)
- 8UCC38C42 25瓦自諧振復(fù)位正激變換器
- 320.6KB | 1次下載 | 免費(fèi)
本月
- 1ACDC變換器的原理圖免費(fèi)下載
- 0.26 MB | 65次下載 | 免費(fèi)
- 2無(wú)刷電機(jī)控制方案設(shè)計(jì)合作
- 1.05 MB | 22次下載 | 免費(fèi)
- 3美的超薄電磁爐TM-S1-09B主板原理圖
- 0.08 MB | 20次下載 | 免費(fèi)
- 4純電動(dòng)汽?的主要部件及?作原理
- 5.76 MB | 12次下載 | 5 積分
- 5GP328和GP88S對(duì)講機(jī)的維修實(shí)列資料合集免費(fèi)下載
- 0.03 MB | 10次下載 | 10 積分
- 6舒爾SLX4無(wú)線話筒接收機(jī)原理圖:二次變頻超外差部分
- 0.27 MB | 8次下載 | 免費(fèi)
- 7IP5385_DEMO開(kāi)發(fā)資料
- 1.96 MB | 7次下載 | 2 積分
- 8i.MX Linux開(kāi)發(fā)實(shí)戰(zhàn)指南—基于野火i.MX系列開(kāi)發(fā)板
- 17.86 MB | 7次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935115次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420061次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233084次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191363次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183329次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73805次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65985次下載 | 10 積分
評(píng)論
查看更多