:编写网络协议
选择“File→New→Interface”,设置名称为“RequestCommand”,点击“Finish”完成客户端发送指令接口的创建。输入网络协议代码,其中关键代码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):
public interface RequestCommand {
/**准备命令*/
public final static byte READY = 0x0;
/**开始命令*/
public final static byte START = 0x1;
/**移动命令*/
public final static byte MOVE = 0x2;
/**放炸弹命令*/
public final static byte LAYBOMB = 0x3;
/**退出命令*/
public final static byte QUIT = 0x4;
/**获取游戏数据*/
public final static byte GETDATA = 0x5;
第三步:编写网络线程类
选择“File→New→Class”,设置名称为“HttpThread”,点击“Finish”完成网络线程类的创建。输入网络线程的代码,其中关键码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):
//建立连接
hc = (HttpConnection)Connector.open(SERVER);
//获得输出流
os = hc.openOutputStream();
//发送数据
os.write(data);
//读取响应
if(hc.getResponseCode() == HttpConnection.HTTP_OK){
byte[] tmp = new byte[1024];
is = hc.openInputStream();
int n = is.read(tmp);
//生成有效数据
byte[] b = new byte[n];
System.arraycopy(tmp, 0, b, 0, n);
//处理反馈
listener.doResponse(b);
}else{
listener.doError("服务器反馈错误!");
第四步:在按键处理中添加发送指令
在已有的按键处理代码基础上,编写发送指令的代码。其中关键码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):
playerDire = DIRE_UP; //改变方向
if(playerY - BOX_TILE_HEIGHT > 22){//边界检测
new HttpThread(generateMoveData(DIRE_UP),this); //发送指令
}
break;
case DOWN:
playerDire = DIRE_DOWN; //改变方向
if(playerY + SPRITE_HEIGHT + BOX_TILE_HEIGHT < 210){//边界检测
new HttpThread(generateMoveData(DIRE_DOWN),this); //发送指令
}
break;
case LEFT:
playerDire = DIRE_LEFT; //改变方向
if(playerX - TILE_WIDTH > 0){//边界检测
new HttpThread(generateMoveData(DIRE_LEFT),this); //发送指令
}
break;
case RIGHT:
playerDire = DIRE_RIGHT; //改变方向
if(playerX + TILE_WIDTH + SPRITE_WIDTH < width){//边界检测
new HttpThread(generateMoveData(DIRE_RIGHT),this); //发送指令
手机网游制造之网络通信篇(3)
时间:2011-01-24 csdn博客 陈跃峰
第五步:运行程序
在Eclipse主界面左侧的“Package Explorer”中,选中项目源代码BomberMIDlet.java,单击鼠标右键,选择“Run As→Emulated J2ME Midlet”即可运行程序。
读者反馈
开发qq群:看了上期的文章,《疯狂的炸弹》游戏界面可以改变成3D吗?
小编:可以修改成3D效果的界面,从而获得更加良好的界面体验。修改时主要影响程序中的界面绘制部分,对于用户操作控制以及网络部分都几乎不影响,程序的修改不会很麻烦。
开发QQ群:S60模拟器启动时闪一下就关闭了,为什么会这样?我在网上找了很久,都没有找到,所以才加入你们的群,请帮帮我!
小编:出现这种情况的原因有很多,下面列举几种比较常见的原因:1.编写的程序在运行是遇到错误或异常,阅读代码找出错误原因再进行修改 。2.模拟器的安装出现错误,重新安装模拟器。3.程序配置错误,重新配置开发环境 |