`
insertyou
  • 浏览: 905862 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

手机网游制造之数据处理篇(已发《电脑报》)

阅读更多

目标手机软件

手机网游制造之数据处理篇

开发程序:疯狂的

开发进度:第三期

本期要点:设计服务器端数据处理功能

开发平台:Java平台

手机网游只有客户端是玩不起来的,必须要有服务器端。开发服务器端,最核心的就是设计服务器端的数据处理功能(完整的实例程序请到http://www.shudoo.com/bzsoft下载)。

在一般的服务器端程序中,服务器端程序主要包含数据存储、程序逻辑控制和网络编程等部分,数据存储和程序逻辑控制结合的比较紧密,可以统称为数据处理。为了方便网络数据的传输和整个程序的维护,程序的服务器端最好跟客户端的开发语言一致。

PC上程序的服务器端开发,对安全性和响应时间等要求都比较苛刻,要求数据传输处理快、存储安全,响应时间短。不过手机程序的网络传输速度相对PC要慢不少,所以手机网游的服务器端要求相对较低不高,开发也更容易。

服务器端数据处理设计思路

当客户端第一次连接服务器端时,服务器端分配一个唯一的用户ID给客户端,在客户端获得该用户ID以后,每隔一定时间向服务器端查询,看服务器端是否有匹配的用户可以进行对战。

如果没有则向客户端反馈继续等待的指令,如果有匹配的用户则为这两个客户端分配房间ID,并生成地图数据信息,开始游戏对战。进入游戏界面以后每隔一定时间获得一次地图数据,当用户移动角色时向服务器端发送移动指令,服务器端根据客户端的移动请求进行逻辑处理并对应的修改地图数据(见图)。

当客户端连接到服务器端时,服务器端进行逻辑处理,分配一个唯一的用户ID给客户端。在获得房间ID时实现的思路和用户ID实现一样,而对于游戏界面的地图数据,包括各个地图块的数据和玩家位置、方向等信息,则使用Java中一个自定义类进行代表,每个房间的数据就是该类的一个对象。

分析数据处理技术

在《疯狂的》游戏中,要处理的数据主要有三种:用户ID分配逻辑、玩家分配逻辑和玩家移动控制逻辑。用户ID分配逻辑是为玩家分配唯一的编号,比较简单;玩家分配逻辑是将处于等待状态的两个客户端分配到一个房间,并初始化游戏数据的逻辑;玩家移动控制逻辑是判断玩家是否可以实现移动,并修正移动以后的游戏数据,比较复杂。

玩家移动控制逻辑的原理如下所示:在游戏界面中,依次存储每个单元格中显示的图片序号,玩家也按照行号和列号来存储位置,整个界面是一个1110列的区域,所以在移动是按照单元格判断移动即可。在移动时,先判断当前用户ID是对战玩家中的用户1还是用户2,然后判断以后的单元格是否超出地图区域,如果没有超出地图区域则按照移动方向,修改玩家的行号和列号。

服务器端数据处理设计步骤

第一步:创建项目

启动Eclipse,选择“FileNewJava Project”,设置项目名称为“BomberServer”,并一路选择“Next”, 完成项目的建立。然后新建一个入口类选择“FileNewClass”,设置名称为“Server”,点击“Finish”。创建项目的代码下载地址是http://www.shudoo.com/bzsoft

第二步:创建游戏数据类

选择“FileNewClass”,设置名称为“GameData”,点击“Finish”完成游戏数据类的创建。然后输入该类的代码,其中关键码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):

/* 界面相关数据 */

/** 盒子层地图数据 */

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];

第三步:数据处理

选择“FileNewClass”,设置名称为“LogicEngine”,点击“Finish”完成数据处理类的创建,该类包含所有游戏数据和数据处理的代码,关键码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):

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 AsJava Application”即可运行程序。

读者反馈

开发QQ:看了上期的文章有一个疑问,手机网游开发中,必须要用到监听模式吗?有其他替换的方式吗?

小编:是的,必须使用监听模式,没有其他方式替换!这就如同网络通信要用到HTTP协议一样,是必须的。

开发QQ我想请教一下,如何在程序中添加弹出菜单的功能,弹出的菜单后如果没有点击则自动隐藏。

小编:设计弹出菜单可以用popmenu,不同的平台具体使用方法不同,你要根据自己的情况处理。弹出的菜单一般不需要手工行关闭,当失去焦点或焦点转移时,菜单就会自动隐藏。

开发QQ我的程序老报错,Exception in thread "main" java.lang.NoSuchMethodError: Box.<init>(DDD)V at BoxDemo7.main(BoxDemo7.java:21)

小编:在源代码BoxDemo7.java文件的第21行中,调用的Box类的构造方法不存在。建议你阅读一下Box类的源代码,查找一下在BoxDemo7中要调用的构造方法是否存在。

开发QQ 我最近才看到《电脑报》在讲手机编程,我想问问Windows Mobile的开发工具在哪里下载?我在很多软件下载站都没有看到。

小编:专业的软件很多软件下载站都没有,这很正常。建议你去微软官网直接下载。SDK下载地址:http://download.microsoft.com/download/f/2/3/f232f773-7edc-4300-be07-d3b76a5b3a91/Windows Mobile 6 Professional SDK Refresh.msi

简体中文模拟下载地址器:http://download.microsoft.com/download/0/1/2/012bfbba-9fe5-4e68-86c9-d434446d97dd/0804/Windows%20Mobile%206%20Professional%20Images%20(CHS).msi

读者问题在手机来电时立即暂停程序,这个功能是怎么实现的?

高手 ttu:不同平台实现的方法不一样,不过思路是相通的,我抛砖引玉说说思路吧。在J2ME技术中,实现手机来电时暂停功能的方法有两种:

方法1:利用MIDlet类的生命周期知识。在手机来电时,系统会自动调用MIDlet子类中的pauseApp方法,只需要将暂停程序的代码写在该方法内部或在该方法内部进行调用即可。

方法2:利用Canvas类的知识。在手机来电时,如果当前显示的界面是Canvas类的子类,则系统会自动调用Canvas类的hideNotify方法,只需要将暂停程序的代码写在该方法内部或在该方法内部进行调用即可。

对应的,如果在通话结束的时候继续程序,则对应的将继续的代码写在startAppshowNotify方法书写代码即可。

读者问题我的公司要开发药品管理系统,要支持PDA,能给我一些建议吗?

你是手机编程的高手吗?你能解答上面这位读者的疑问吗?不要犹豫,来我们这里展示一下你的风采吧,来信请发到pcw-chendx@vip.sina.com(也可以给我们发送问题)。

第八个QQ: 57137039,验证码:陈邓新。欢迎对手机编程感兴趣的朋友加入。

(陈跃峰 辛涛)

分享到:
评论

相关推荐

    电脑报2018年第03期.pdf

    1. 《电脑报》的历史:自1992年创刊至今,这份报纸已走过多年历程,见证了中国计算机行业的发展和变革。 2. 主办和主管单位:《电脑报》是由西南大学、重庆市科协共同主办和主管,这表明它具有一定的学术背景和官方...

    《电脑报》2018年第34期

    7. 玩家社区:对于游戏爱好者来说,2018年的《电脑报》可能会提供最新游戏的评测、游戏硬件推荐、游戏玩法分享等内容。 需要注意的是,上述提到的所有内容都是根据《电脑报》的常规内容和2018年IT行业的大致情况所...

    电脑报1992-2001

    电脑报可能涵盖了早期的防病毒软件、数据加密技术、网络防护知识,这些对研究信息安全历史有重要意义。 6. **新兴科技**:这一时期还见证了移动通信和多媒体技术的发展,如大哥大、早期的掌上电脑(PDA)和数字音频...

    电脑报 2019年.pdf

    本期电脑报涵盖了多个领域的技术新闻和评测,内容丰富而且多样化,涵盖了小米 CC9 Pro 手机、Apple Watch 5、AMD 锐龙 9 3950X 等多个热门技术话题,同时也报道了职业打假第一人谈实名举报美团、房企血拼双十一、...

    电脑报电子版

    电脑报电子版

    电脑报2000合订本

    电脑报2000合订本

    《电脑报》2013年期刊汇总(持续更新)

    资源名称:《电脑报》2013年期刊汇总(持续更新)资源目录:【】《电脑报》(2013年第14期 4月15日出版)【】电脑报 13年第35期【】电脑报 13年第36期【】电脑报 2013年37期【】电脑报 2013年第10期3月18日出版 绝对...

    基于时空关系的手机定位数据处理方法.pdf

    【基于时空关系的手机定位数据处理方法】 手机定位技术在交通信息采集和个性化服务中扮演着重要角色,尤其是在大数据和数据分析领域。文章《基于时空关系的手机定位数据处理方法》探讨了如何处理手机定位数据中的...

    电脑报2017年合订本

    在数字化时代,电脑及数码设备已成为日常生活中不可或缺的一部分。它们不仅提升了我们的工作效率,也丰富了我们的娱乐生活。然而,随着技术的快速发展,各类电脑硬件和软件不断更新迭代,常常令消费者感到目不暇接。...

    《电脑报》

    2016年5月电脑报,可以掌握一个信息时代的

    电脑报2018年专版 - 第24期至第51期

    电脑报第24期、电脑报第25期、电脑报第26期、电脑报第27期、电脑报第28期、电脑报第29期、电脑报第30期、电脑报第31期、电脑报第32期、电脑报第33期、电脑报第34期、电脑报第35期、电脑报第36期、电脑报第37期、电脑...

    电脑报十年珍藏版

    《电脑报十年珍藏版》(1991-2001)是一部记录了中国IT行业发展初期到中期重要历程的珍贵资料集。这是一份集合了十年间《电脑报》出版的所有报纸内容,涵盖了从个人计算机的普及、操作系统的发展、互联网的兴起,到...

    电脑报阅读系统2005

    7. **学习资源**:《电脑报》的内容涵盖了计算机基础知识、软件应用、硬件维护、编程教程、网络安全等多个领域,对于IT爱好者和初学者来说是宝贵的自学资料。 8. **历史价值**:《电脑报阅读系统2005》不仅提供了...

    电脑报阅读系统2002

    电脑报 电脑报阅读系统 电脑报合订本 电脑报电子版 电脑报阅读系统2002

    《电脑报》2017年第42期

    《电脑报》2017年第42期,高清PDF矢量版。 电脑报官方网站是中国发行量最大的计算机报——《电脑报》的官方网站,也是一个专业、全面、及时的数码产品信息聚合站。为用户及时提供每期电脑报上的精彩文章以及丰富的...

    电脑报2008合订本 图片部分

    【标题】"电脑报2008合订本 图片部分"揭示了这是一份包含2008年度《电脑报》图片内容的资源集合。《电脑报》是中国知名的计算机和信息技术类报纸,它提供了丰富的计算机知识、技术教程、产品评测、行业资讯等内容。...

    电脑报2014年第19期

    此外,随着智能手机和平板电脑的普及,移动应用和跨平台开发工具也成为了热门话题,这期电脑报或许会有相关的报道和教程。 在硬件领域,2014年的CPU和显卡市场竞争激烈,AMD与Intel的处理器之争、NVIDIA与AMD的显卡...

    电脑报2019年第2期-2018年1月14日

    电脑报会就最新的网络安全事件进行报道,提醒读者注意防范,同时提供专业的防病毒、防黑客攻击的方法,以及如何保护个人隐私和数据安全。 在IT行业资讯方面,电脑报会介绍互联网公司的最新动态、新兴科技企业的投...

    电脑报2012合订本绿色电子版

    《电脑报》是中国历史悠久的计算机专业报纸,它涵盖了硬件评测、软件应用、网络安全、编程技术等众多IT领域的知识。2012年的合订本尤其有价值,因为它记录了当时的技术趋势和重大事件,比如云计算的崛起、移动互联网...

    电脑报2019年第33期-2019年8月26日

    因此,将从标题和描述部分的内容生成知识点,但请注意,由于缺乏具体的内容细节,生成的知识点将基于标题和描述中提及的电脑报和日期,结合当时可能的IT行业热点和趋势进行阐述。 --- 电脑报作为一份深受读者喜爱的...

Global site tag (gtag.js) - Google Analytics