電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>Arduino的恐龍游戲

Arduino的恐龍游戲

2022-11-11 | zip | 0.11 MB | 次下載 | 2積分

資料介紹

描述

恐龍游戲 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ù)。

?

poYBAGNtnBmAWDauAADTU7TFgQ4092.png
?

?

顯示器使用 SPI 通信,所以我最終使用 ardunio uno 的 SPI 硬件引腳與顯示器通信。Tinkercad 沒(méi)有 TFT 顯示器的模型,所以我只是標(biāo)記了連接并將它們放到面包板上。

我的最終設(shè)置是將所有東西都塞進(jìn)了一個(gè)小面包板,因?yàn)槲覜](méi)有比這更大的東西了。

pYYBAGNtnByAfyVGAAFy3D-8OH0646.png
?

我的 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)。

事情最終看起來(lái)像這樣(PS:不要介意背景中移動(dò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)?)
  • 消除由于跳躍引起的閃爍

本文由作者根據(jù)CC BY 4.0許可


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1無(wú)鉛焊接的可靠性
  2. 1.03 MB   |  5次下載  |  1 積分
  3. 2GBT1094.11-2022電力變壓器第11部分:干式變壓器
  4. 14.12 MB   |  3次下載  |  免費(fèi)
  5. 3PT500齒輪傳動(dòng)動(dòng)力學(xué)綜合測(cè)試實(shí)驗(yàn)臺(tái)
  6. 0.16 MB   |  3次下載  |  免費(fèi)
  7. 4爬電距離和電氣間隙計(jì)算
  8. 0.75 MB   |  2次下載  |  1 積分
  9. 5SX1308應(yīng)用電路圖與SX1308升壓電路圖
  10. 0.18 MB   |  1次下載  |  免費(fèi)
  11. 6ADC參數(shù)單位換算
  12. 761.94KB   |  1次下載  |  免費(fèi)
  13. 7串口工具UartAssist5.0.exe
  14. 0.60 MB   |  1次下載  |  免費(fèi)
  15. 8UCC38C42 25瓦自諧振復(fù)位正激變換器
  16. 320.6KB   |  1次下載  |  免費(fèi)

本月

  1. 1ACDC變換器的原理圖免費(fèi)下載
  2. 0.26 MB   |  65次下載  |  免費(fèi)
  3. 2無(wú)刷電機(jī)控制方案設(shè)計(jì)合作
  4. 1.05 MB   |  22次下載  |  免費(fèi)
  5. 3美的超薄電磁爐TM-S1-09B主板原理圖
  6. 0.08 MB   |  20次下載  |  免費(fèi)
  7. 4純電動(dòng)汽?的主要部件及?作原理
  8. 5.76 MB   |  12次下載  |  5 積分
  9. 5GP328和GP88S對(duì)講機(jī)的維修實(shí)列資料合集免費(fèi)下載
  10. 0.03 MB   |  10次下載  |  10 積分
  11. 6舒爾SLX4無(wú)線話筒接收機(jī)原理圖:二次變頻超外差部分
  12. 0.27 MB   |  8次下載  |  免費(fèi)
  13. 7IP5385_DEMO開(kāi)發(fā)資料
  14. 1.96 MB   |  7次下載  |  2 積分
  15. 8i.MX Linux開(kāi)發(fā)實(shí)戰(zhàn)指南—基于野火i.MX系列開(kāi)發(fā)板
  16. 17.86 MB   |  7次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935115次下載  |  10 積分
  3. 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420061次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233084次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191363次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183329次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73805次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65985次下載  |  10 積分