<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于ARM和WinSock的多人對戰(zhàn)游戲平臺設(shè)計

          基于ARM和WinSock的多人對戰(zhàn)游戲平臺設(shè)計

          作者: 時間:2011-07-15 來源:網(wǎng)絡(luò) 收藏

          2.2 應(yīng)用程序接口函數(shù)
          1)加載套接字庫AfxSocketlnit()
          布爾型,參數(shù)缺省值為NULL,在程序結(jié)束前自動調(diào)用WSACleanup清除套接字。
          2)創(chuàng)建套接字socket()
          用于創(chuàng)建指定類型的套接字,流式(TCP協(xié)議)SOCK_STREAM或數(shù)據(jù)報式(UDP協(xié)議)SOCK_DGRAM。
          3)綁定本地地址bind()
          將套接字地址(包括本地主機(jī)地址和本地端口地址)與所創(chuàng)建的套接字號聯(lián)系起來,即將名字賦予套接字,以指定本地半相關(guān)。
          4)接收recvfrom()
          在套接字指定的已連接的數(shù)據(jù)報或流套接字上接收輸入數(shù)據(jù)。
          5)發(fā)送sendto()
          在套接字指定的已連接的數(shù)據(jù)報或流套接字上發(fā)送輸出數(shù)據(jù)。

          3 Win32下五子棋程序
          3.1 思路
          開始前有一系列引導(dǎo)步驟,讓用戶選擇模式,并作相應(yīng)的初始連接,如圖4所示。這些引導(dǎo)步驟可通過添加一系列對話框資源來實現(xiàn)。完成之后進(jìn)入選擇的游戲模式。

          本文引用地址:http://www.ex-cimer.com/article/150469.htm

          d.JPG


          對于單人五子棋游戲,即人機(jī)對戰(zhàn),只需要一個應(yīng)用程序。當(dāng)用戶鼠標(biāo)左擊棋盤時,程序先在相應(yīng)位置處畫棋子,然后執(zhí)行電腦方策略,實現(xiàn)對戰(zhàn)。
          對于雙人五子棋游戲,則需要先運(yùn)行一個服務(wù)器端程序,然后兩個用戶分別運(yùn)行一個客戶端程序,并與此服務(wù)器相連。游戲進(jìn)行過程中,由服務(wù)器執(zhí)行游戲策略,客戶端程序只負(fù)責(zé)采集鼠標(biāo)信息和顯示棋子。我們讓用戶A在游戲A上運(yùn)行服務(wù)器端程序,緊接著運(yùn)行客戶端程序,并與服務(wù)器建立Socket連接;然后告訴用戶B服務(wù)器的IP地址,讓其在B上運(yùn)行客戶端程序,并與服務(wù)器建立Socket連接;連接成功后就可以開始游戲了。
          3.2 單人游戲
          建立MFC工程,選擇創(chuàng)建單文檔類型的應(yīng)用程序。添加對話框資源用于選擇游戲模式,并在View類構(gòu)造函數(shù)中DoModal()。
          進(jìn)入單人模式后的程序開發(fā)流程如圖5所示。

          e.JPG



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();