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