• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      設計一個多人互動游戲

      2019-10-08 12:58謝作如陸雅楠
      中國信息技術教育 2019年17期
      關鍵詞:龍舟代碼開源

      謝作如 陸雅楠

      利用編程軟件和開源硬件制作的人機互動游戲案例已經越來越多,但是多人互動的游戲卻很少見,因為這需要網絡的支持。掌控板是一款使用物聯(lián)網芯片開發(fā)的開源硬件,具備了連接網絡的功能,如何運用類似掌控板之類能夠聯(lián)網的開源硬件,設計可以多人互動的游戲,成為我們研究的新方向。

      賽龍舟是我國的一個重要習俗,是一項典型的集體競賽活動。將這項活動搬入室內,甚至是搬入課堂,以一種全新的形式呈現(xiàn)出來,肯定挺好玩。掌控板自帶了加速度傳感器,可以感知“劃槳”的動作,再結合物聯(lián)網技術,將大家的動作統(tǒng)一呈現(xiàn)在一個屏幕上,為“賽龍舟”的游戲設計提供了技術上的保障。

      ● 多人互動游戲的技術分析

      物聯(lián)網(Internet of Things,簡稱IoT)是借助互聯(lián)網、傳統(tǒng)電信網等信息承載體,讓所有能行使獨立功能的普通物體實現(xiàn)互聯(lián)互通的網絡。MQTT是常見的物聯(lián)網通信協(xié)議,采用主題(TopicID)來實時發(fā)送和接收(訂閱)消息,使用起來非常簡單(如圖1)。

      掌控板支持MQTT協(xié)議。本游戲案例為人手一塊掌控板,設置掌控板連接Wi-Fi,然后利用掌控板的加速度傳感器感知晃動幅度,即劃槳的動作,接著上傳到MQTT服務器。Mind+軟件也連接MQTT服務器,訂閱物聯(lián)網信息,再用不同的龍舟角色呈現(xiàn)不同掌控板的前進速度,就完成了這一互動游戲。系統(tǒng)運行流程如圖2所示。

      ● 開發(fā)工具準備

      1.Mind+

      Mind+是開源硬件企業(yè)DFRobot推出的IDE工具。其支持兩種編程模式,一是實時交互模式,二是離線下載模式。實時交互模式類似普通的Scratch程序,離線下載模式則是指給Arduino、掌控板寫程序。Mind+可以直接訪問MQTT服務器,和其他接入MQTT服務器的智能硬件進行交互?;贛ind+的MQTT簡單調試如圖3所示。

      2.掌控板

      一個游戲用戶需要一塊掌控板。根據賽龍舟的活動特點,制作一個船槳,將掌控板安裝到船槳上采集真實的“劃槳”數(shù)據。注意,掌控板要加電源。圖4中的掌控板加了帶電源的擴展板。

      3.SIoT服務器

      SIoT是一個跨平臺的標準MQTT服務器,不需要經過復雜的配置,一鍵啟動即可使用。SIoT也是一款開源軟件,是“虛谷物聯(lián)”項目的核心軟件,根據操作系統(tǒng)下載相應的版本即可。

      ● 代碼編寫

      1.物聯(lián)網環(huán)境準備

      雙擊運行與系統(tǒng)匹配的SIoT運行文件,屏幕會彈出一個黑色的CMD窗口(如圖5),確保在配置中此窗口不關閉。

      運行Mind+軟件,并在拓展中選擇“網絡服務”并添加“MQTT”,如圖6所示。

      2.掌控板代碼

      掌控板的代碼使用Mind+的“下載模式”編寫,參考代碼如下頁圖7所示。首先,掌控板設備與服務器建立連接,在服務器上能夠實時反饋數(shù)據。其次,設置變量g1與g2,分別代表玩家一次劃槳的前后加速度(可通過讀取一次劃槳前后槳上掌控板不同位置的加速度獲取),從而計算槳的晃動幅度,然后上傳到MQTT服務器。

      “MQTT初始化參數(shù)”設置:服務器地址設置為SIoT服務器的IP地址,TopicID(主題)設置為“項目ID/名稱”(如下頁圖8)。不同的掌控板設置不同的TopicID,如“l(fā)ongzhou/0”“l(fā)ongzhou/1”“l(fā)ongzhou

      /2”分別代表三塊掌控板。

      3.Mind+代碼

      Mind+的代碼在“實時模式”下編寫,需要設置一個河水的背景,然后添加龍舟角色,根據掌控板的數(shù)量添加多個角色,龍舟角色的參考代碼如下頁圖9所示。同樣在“MQTT初始化參數(shù)”中設置“l(fā)ongzhou/0”“l(fā)ongzhou/1”“l(fā)ongzhou/2”這三個TopicID。

      通過不同玩家控制的掌控板傳來的順序,一一對應到各自的角色(龍舟)上,不同晃動幅度龍舟的前進速度不同。

      ● 游戲測試

      每名玩家手持裝有掌控板的船槳一柄,每名玩家代表一條龍舟。當掌控板出現(xiàn)數(shù)值就表示連接MQTT服務器成功,就可以開始游戲了。Mind+軟件會準確計算出每名玩家的劃槳幅度并將其呈現(xiàn)在龍舟的前進速度中,最終玩家們根據龍舟觸邊先后決出勝負。其測試效果如圖10、圖11所示。

      ● 結語和展望

      通過實踐,筆者認為這款游戲還可以繼續(xù)改進,如:①可以通過添加音效使得游戲更加真實,玩家體驗感更好;②在背景畫面上可以添加動圖效果,制作出龍舟比賽時水流的特效;③可以思考設計團隊模式游戲,三人一組劃一條龍舟進行競賽。

      結合SIoT和掌控板,可以設計更多有意思的多人互動游戲,也可以設計一些真實的應用,如網絡投票。在一些集體活動中玩這樣的互動游戲,不僅有趣,還能夠培養(yǎng)學生的集體意識。希望本案例能拋磚引玉,有更多的教師帶領學生做類似的研究。

      猜你喜歡
      龍舟代碼開源
      校園武術“學、練、賽”一體化實踐探索
      五毛錢能買多少頭牛
      2019(第十四屆)開源中國開源世界
      2019開源杰出貢獻獎
      龍舟
      觀云
      神秘的代碼
      一周機構凈增(減)倉股前20名
      重要股東二級市場增、減持明細
      近期連續(xù)上漲7天以上的股
      龙口市| 涟水县| 观塘区| 河北区| 玛沁县| 漳平市| 华宁县| 探索| 浦江县| 凤凰县| 德令哈市| 正镶白旗| 枣阳市| 楚雄市| 旬阳县| 马边| 察哈| 玛沁县| 宜宾市| 绥江县| 庆阳市| 石景山区| 图片| 迭部县| 蒲城县| 靖边县| 元朗区| 吐鲁番市| 澄江县| 东乌珠穆沁旗| 沁阳市| 三亚市| 南昌市| 锦屏县| 华蓥市| 黄山市| 朝阳区| 临高县| 仙居县| 鸡东县| 墨脱县|