手机编写网游《疯狂的炸弹》
手机编写网游之《疯狂的炸弹》
(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(同微信)