您好,登錄后才能下訂單哦!
這篇文章給大家介紹用microbit進行乒乓球對戰的實例分析,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
我想可以嘗試用Python編寫一個無線乒乓球游戲,但是因為種種原因,我花了比預期更長的時間。我本來想用同樣的代碼在兩個microbit上,但我很快就放棄了,因為這樣實現起來太復雜。后來我用一個microbit控制游戲和決定誰得到一分,玩家B是“從機”,只把它的左右移動發給到游戲者A,然后鏡顯示在玩家A的屏幕上。
我非常希望每個屏幕都是一樣的 —— 而不是像我看過的有線版那樣擴展一個長屏幕。這是因為我希望每個玩家都能相距足夠遠,所以看其他玩家的屏幕就是不必要的。
怎樣玩
使用 Mu 將玩家A的程序寫到一個 microbit 中,而玩家B使用另外一個 microbit 程序。在microbit上你可以選擇連接耳機或蜂鳴器到microbit的引腳0和1獲得聲音反饋(在newbit上可以直接使用,甚至可以連接震動馬達進行力度反饋)。
玩家B先上電 - 它會等待來自玩家A 的消息,然后玩家A上電。接著開始發球,球是屏幕中間移動的LED點。使用A和B按鈕左右移動你的球拍,如果擋住球會隨機反向反彈,如果沒有擊中球,對手將得到一分(分數沒有顯示在屏幕),先得到5分的玩家獲勝。開始下一局需要按復位按鈕。
工作原理
玩家B比較容易解釋。它在一個循環中不斷輪詢消息和按鍵。如果你按A鍵就向左移動,按B向右移動,它會發送一條包含球拍新位置的信息。它也接收來自對手的消息。它們以不同的代碼字母開頭:
P + A 是玩家A的位置。
X和Y的信息是球的當前位置,然后調用bat_map用字典查表。
a和b消息給出A和B各自的分數。
如果玩家B得到5分,它將退出循環并播放一首快樂的樂曲(Nyan cat)。如果玩家A贏得比賽將播放一首悲傷的歌(葬禮進行曲)。
玩家A做主控端。它為球選擇一個隨機方向開始移動,如果球碰到任何一個邊,它就會反彈。如果它擊中了頂部或底部,而玩家沒有擋住球,對手就得到一分。我通過delay和計數器計時 – 每達到1000就移動球(我沒有找出在microbit上使用MicroPython定時器的方法)。如果一個玩家用球拍擊球,速度會加快一點。它發送(如上所述)的球的位置、得分和玩家A球拍位置給給玩家B。游戲的結束方式和玩家B的代碼相同,除了玩家A獲勝是高興曲子和玩家B獲勝時放悲傷的曲調。
如何修改
通過將延遲參數變小,可以使游戲更快。你也可以通過增加winning_score使游戲時間變長。
一個很好的擴展是添加更多的聲音(例如,當你擊中球),每當有人贏了一場比賽,等級越高游戲速度就越快。
關于用microbit進行乒乓球對戰的實例分析就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。