手機編寫網游《瘋狂的炸彈》
手機編寫網游之《瘋狂的炸彈》
(2019-12-03)河南鄭州科技市場IT產品配送網-鄭州電腦手機測評中心
開發平臺:Java平臺
PC上程序的服務器端開發,對安全性和響應時間等要求都比較苛刻,要求數據傳輸處理快、存儲安全,響應時間短。不過手機程序的網絡傳輸速度相對PC要慢不少,所以手機網游的服務器端要求相對較低不高,開發也更容易。在一般的服務器端程序中,服務器端程序主要包含數據存儲、程序邏輯控制和網絡編程等部分,數據存儲和程序邏輯控制結合的比較緊密,可以統稱為數據處理。為了方便網絡數據的傳輸和整個程序的維護,程序的服務器端最好跟客戶端的開發語言一致。
服務器端數據處理設計思路:
當客戶端第一次連接服務器端時,服務器端分配一個唯一的用戶ID給客戶端,在客戶端獲得該用戶ID以后,每隔一定時間向服務器端查詢,看服務器端是否有匹配的用戶可以進行對戰。如果沒有則向客戶端反饋繼續等待的指令,如果有匹配的用戶則為這兩個客戶端分配房間ID,并生成地圖數據信息,開始游戲對戰。進入游戲界面以后每隔一定時間獲得一次地圖數據,當用戶移動角色時向服務器端發送移動指令,服務器端根據客戶端的移動請求進行邏輯處理并對應的修改地圖數據。
當客戶端連接到服務器端時,服務器端進行邏輯處理,分配一個唯一的用戶ID給客戶端。在獲得房間ID時實現的思路和用戶ID實現一樣,而對于游戲界面的地圖數據,包括各個地圖塊的數據和玩家位置、方向等信息,則使用Java中一個自定義類進行代表,每個房間的數據就是該類的一個對象。
在《瘋狂的炸彈》游戲中,要處理的數據主要有三種:用戶ID分配邏輯、玩家分配邏輯和玩家移動控制邏輯。用戶ID分配邏輯是為玩家分配唯一的編號,比較簡單;玩家分配邏輯是將處于等待狀態的兩個客戶端分配到一個房間,并初始化游戲數據的邏輯;玩家移動控制邏輯是判斷玩家是否可以實現移動,并修正移動以后的游戲數據,比較復雜。
玩家移動控制邏輯的原理如下所示:在游戲界面中,依次存儲每個單元格中顯示的圖片序號,玩家也按照行號和列號來存儲位置,整個界面是一個11行10列的區域,所以在移動是按照單元格判斷移動即可。在移動時,先判斷當前用戶ID是對戰玩家中的用戶1還是用戶2,然后判斷以后的單元格是否超出地圖區域,如果沒有超出地圖區域則按照移動方向,修改玩家的行號和列號。
第一步:創建項目
啟動Eclipse,選擇“File→New→Java Project”,設置項目名稱為“BomberServer”,并一路選擇“Next”, 完成項目的建立。然后新建一個入口類,選擇“File→New→Class”,設置名稱為“Server”,點擊“Finish”。
第二步:創建游戲數據類
選擇“File→New→Class”,設置名稱為“GameData”,點擊“Finish”完成游戲數據類的創建。然后輸入該類的代碼,其中關鍵碼如下所示/* 界面相關數據 */
/** 盒子層地圖數據 */
byte[][] boxMap = new byte[ROWS][COLS];
/** 樹木層地圖數據 */
byte[][] treeMap = new byte[ROWS][COLS];
/** 房子層地圖數據 */
byte[][] houseMap = new byte[ROWS][COLS];
/** 草叢層地圖數據 */
byte[][] brushwoodMap = new byte[ROWS][COLS];
/** 炸彈層地圖數據 */
byte[][] bombMap = new byte[ROWS][COLS];
第三步:數據處理
選擇“File→New→Class”,設置名稱為“LogicEngine”,點擊“Finish”完成數據處理類的創建,該類包含所有游戲數據和數據處理的代碼,關鍵碼如下所示 if(userID == userID1){ //用戶1
c = playerC1;
r = playerR1;
playerDire1 = dire; //改變人物方向
}else{ //用戶2
c = playerC2;
r = playerR2;
playerDire2 = dire; //改變人物方向
}
//邊界檢測
if(isInMap(c,r,dire)){
switch(dire){ //根據方向移動
case DIRE_UP:
r--;
break;
case DIRE_DOWN:
r++;
break;
case DIRE_LEFT:
c--;
break;
case DIRE_RIGHT:
c++;
break;
}
//移動到的單元格無內容
if(isSpace(userID,r,c)){
movePlayer(userID,dire);
}else{ //不能移動
//推箱子的情形
pushBox(userID,c,r,dire);
第四步:運行程序
在Eclipse主界面左側的“Package Explorer”中,選中項目源代碼Server.java,單擊鼠標右鍵,選擇“Run As→Java Application”即可運行程序。
河南鄭州科技市場IT產品配送網----------DIY游戲電腦、辦公電腦聯系電話:17739760690(同微信)