1. 項目概述
項目說明
該項目是實現(xiàn)經(jīng)典的街機游戲——彈球機。使用DE1-SOC開發(fā)板上的滑動開關(guān),玩家可以設(shè)置球的初始速度。然后,按下按鈕將球釋放到柜子中,球?qū)⒏鶕?jù)其當(dāng)前的速度和方向與周圍的物體進行碰撞交互。玩家可以按下另外兩個按鈕來控制左右兩個撥片,以嘗試將移動的球保持在柜子中。分?jǐn)?shù)根據(jù)球的比賽時長進行記錄,當(dāng)球離開柜子/顯示器時游戲結(jié)束。此外,玩家還可以切換 DE1-SOC上的開關(guān)來啟用/禁用藝術(shù)模式,藝術(shù)模式是讓玩家可以根據(jù)球的路徑在柜子上進行繪畫。
2. 物理原理
將速度分解為 x 和 y 分量,負(fù)速度表示向顯示屏上的 0,0 或屏幕的左上角移動,正速度表示向屏幕右下角移動。
發(fā)射球時系統(tǒng)會根據(jù)滑動開關(guān)的設(shè)定來給球一個 y 方向的初速度,球的運動過程中要考慮重力對球的影響。比如在玩實際機器時,如果球沒有足夠的速度,由于箱體的角度,它會落回到彈簧上。
當(dāng)球沿斜面向下移動,若不考慮摩擦、滾動、滑動等其他因素時,加速度方程只基于箱體的傾斜度。如下圖所示,加速度的方向是朝向柜子的底部,大小等于重力乘以傾斜角的正弦值。這意味著需要在一定數(shù)量的循環(huán)后將 y 方向(即朝向顯示屏底部)的速度增加 1。
當(dāng)球繞柜子移動與物體發(fā)生碰撞時,速度會在 x 和 y 方向上發(fā)生變化。當(dāng)球從靜止物體上彈起時,它會以與該物體撞擊時相同的角度離開。
為有效計算,只考慮當(dāng)前速度矢量 [x 速度,y 速度] 和正在撞擊的物體的單位法線矢量。然后將使用以下方程計算新的速度矢量:v' = 2*(n dot v)*n + v。
審核編輯:劉清
-
顯示器
+關(guān)注
關(guān)注
22文章
5072瀏覽量
141847 -
速度矢量
+關(guān)注
關(guān)注
0文章
2瀏覽量
1345
原文標(biāo)題:街機彈球機的模擬
文章出處:【微信號:友晶FPGA,微信公眾號:友晶FPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
【招聘】射頻/模擬、ASIC設(shè)計/驗證、系統(tǒng)、模擬設(shè)計等
stm32游戲機模擬器
單片機計算器模擬設(shè)計方案
如何用esp32制作無線VR彈球機?
基于開源虛擬機的模擬設(shè)備的設(shè)計與實現(xiàn)

Cadence教程之如何使用VieloSo模擬設(shè)計環(huán)境進行設(shè)計

PSoC Creator模擬設(shè)計:如何解決模擬電壓問題
PSoC Creator模擬設(shè)計:Analog Device Viewer
PSoC Creator模擬設(shè)計:引腳放置的模擬及注意事項
彈球ARDUINO轉(zhuǎn)換開源分享

評論