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