目标手机软件
手机网游制造之
游戏界面篇
开发程序:疯狂的
开发进度:第一期
本期要点:设计客户端游戏功能
开发平台:Java平台
从3G中受益的行业,一定少不了手机网游,手机网游应该怎么开发呢?跟PC平台上的游戏开发一样吗?别急,跟随我们开发一个手机网游,你就什么都明白了。本期我们先讲客户端的游戏功能。
手机网游前景光明
国内的手机网络游戏最早出现在2004年,最初由3人团队开发并运营的休闲网游——《移动玩家》系列。第一个公司开发的手机网游是《三界传说》。手机网游发展到如今已经有几十款手机网游上线运营了。易观Enfodesk发布的《2009年第1季度中国手机网游市场季度监测》数据显示,2009年第1季度中国手机网游用户规模达330万,环比增长16%。
小提示:手机游戏门户网站当乐网2008年的调查显示,目前的手机网游用户中,学生(38.4%)、公司职员(21.3%)、工人(12.8%)及军人(3.7%)占比合计达76.2%,他们是时下手机网游的主体消费者。在年龄上,15岁至25岁的用户成为手机网游消费的主体,占比近90%。
困扰手机网游发展的因素有三个:网络速度、网络费用昂贵和体验性差。随着3G的快速发展,手机的网络传输速度将得到极大的提升,网络费用也会在将来降下来。有了传输速度的保证,游戏会做的很细化、功能更强,自然体验性也会更好。在今年的ChinaJoy展会上,还特别设立了手机网游专区,可见它的前景十分光明(图1)。
Java ME技术由于支持的手机广泛,开发人员众多,在整个手机网络游戏开发技术中占据主导地位,随着MIDP3.0规范的推出,Java ME技术将成为最主要的开发手机网络游戏技术。
客户端游戏功能设计思路
手机网络游戏和普通的网络程序一样,在实际设计时都分为客户端和服务器端两个部分进行开发。开发客户端,主要包含界面设计、用户操作控制和网络传输三部分。开发服务器端,则主要包含网络传输、数据存储和核心逻辑三部分。所以网络程序和一般程序的不同就是将单机程序的数据和逻辑处理部分移动到服务器端,然后通过网络传输和客户端进行数据交换,从而实现程序的功能。
《疯狂的》是一款类似《人》的双人对战小游戏。本游戏包含两个界面(图1):等待界面和游戏界面,等待界面比较简单,界面为一个闪烁的文字。游戏界面是程序的主界面。由于界面中包含的元素很多,所以对于界面采用分层绘制的思路:首先绘制包含背景块的背景层,然后绘制障碍物层,最后绘制人物和等。
而对于用户的操作控制,客户端先要做一些基础的判断,然后将用户操作转换为一定的格式发送给服务器端,由服务器端判断是否可以操作,客户端程序根据服务器端的处理结果来确定操作是否成功。
状态机机制讲解
由于需要在程序中实现两个界面:等待界面和游戏界面,为了简化逻辑的处理,将这两个界面编写在一个代码的内部,这就需要使用界面开发中一种常用的控制机制——状态机机制。
状态机机制的实现原理是:使用一个int状态变量控制显示哪个界面,例如该变量的值为0时显示等待界面,该变量的值为1时显示游戏界面,这样就可以通过控制该状态变量来实现界面的显示和切换了。
使用状态机机制可以很方便的在一个代码的内部制作多组界面,可以让代码的结构变得十分清晰。此外,还需要考虑对复杂的界面进行分层处理。分层处理是指将逻辑处理相同的元素划分为一层,类似PhotoShop中层的概念,例如将起装饰的背景块组成背景层,将参与碰撞处理的部分组成碰撞层等,而人物需要单独处理成一层。
这种处理的思路不仅使得界面绘制结构清晰,更重要的是使逻辑处理简单化,从而可以开发更复杂的界面程序。状态机机制,在复杂程序中用得较多,特别是手机网游程序,有志于这方向的朋友一定要掌握它。
本程序中的实现代码为:
/** 界面控制状态值 */
int status;
/** 等待界面 */
final int WAITING_SCREEN = 0;
/** 游戏界面 */
final int GAME_SCREEN = 1;
在代码的各个方法中,根据变量status的值进行不同的逻辑处理,从而实现状态机机制。
客户端游戏功能设计步骤
第一步:创建项目
启动Eclipse环境,选择“File→New→J2ME MIDlet Suit”,设置项目名称为“Bomber”,并一路选择“Next”, 完成项目的建立。然后新建一个J2ME入口类,选择“File→New→J2ME MIDlet”,并设置名称为“BomberMIDlet”,点击“Finish”。创建项目的代码下载地址是http://www.shudoo.com/bzsoft。
第二步:设计界面
选择“File→New→Class”,并设置名称为“BomberCanvas”,点击“Finish”完成界面类的创建。接着,开始初始化界面。关键码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):
protected void paint(Graphics g) {
switch(status){
case WAITING_SCREEN:
paintWait(g);
break;
case GAME_SCREEN:
paintGame(g);
break;
第三步:按键处理
在上面的界面类中,编写事件处理的代码,实现按手机键盘上按左软键退出,按上下左右键移动,以及按确定键释放。核心代码如下所示(完整代码下载地址:http://www.shudoo.com/bzsoft):
public void keyPressed(int keyCode) {
switch (status) {
case WAITING_SCREEN:
keyPressed_wait(keyCode);
break;
case GAME_SCREEN:
keyPressed_game(keyCode);
break;
第四步:运行程序
在Eclipse主界面左侧的“Package Explorer”中,选中项目源代码BomberMIDlet.java,单击鼠标右键,选择“Run As→Emulated J2ME Midlet”即可运行程序(图3)。
等待界面 游戏界面
开发QQ群:咨询一个技术问题,怎么才能让CEikRichTextEditor的背景变透明?
小编:在S60 3rd 中,若要使CEikRichTextEditor的背景变透明,可以从CLafEdwinCustomDrawBase 继承出一个类,如 class CMyEditor : public CEikRichTextEditor, public CLafEdwinCustomDrawBase{},然后重写DrawBackground函数,在DrawBackground函数中加入绘制透明背景的代码即可。
开发QQ群:我的程序做好了,却碰到一个难题,如何将程序的图标添加到主界面中?
小编:要将程序的图标添加到主界面中,需要专门开发一个特定的今日插件。SDK内提供了一个示例程序:\Windows Mobile 6 SDK\Samples\PocketPC\CPP\win32\memwatcher。
开发QQ群:我听到群里面的兄弟经常说“WAP”,它是个什么东东?我比较菜,希望帮帮我。
小编:WAP即无线应用协议(Wireless Application Protocol),是一种向移动终端提供互联网内容和先进增值服务的全球统一的开放式协议标准, 是一种简化了的无线Internet 协议。WAP 将Internet和移动电话技术结合起来,使随时随地访问丰富的互联网络资源成为现实。
开发QQ群:请教一下,MIDP1.0中如何获得整个屏幕的高度和宽度。
小编:使用Java ME 开发的手机程序,可以使用Canvas类中提供的getWidth()和getHeight()这两个函数来获取屏幕的宽度和高度。
读者问题:我使用的是PPC手机,日历、任务功能对我很重要。直接在手机上添加日历或任务很不方便,需要双手操作,还有很多选项。能不能在通话记录或联系人的菜单中添加一个命令,可以一键设定与所选联系人关联的日历或任务?
高手 图图:动态添加菜单可以参考SDK提供的示例程序:\Windows Mobile 6 SDK\Samples\PocketPC\CPP\win32\Dynamenu,MSDN上也有更详细的解释:http://msdn.microsoft.com/zh-cn/library/s765c671(VS.80).aspx。联系人、日历、任务等的操作可以使用原生的POOM方式,也可以使用.Net CF 里提供的Microsoft.WindowsMobile.PocketOutlook命名空间下的相关方法。
读者问题:手机开发中有支持移动定位技术的吗?
你是手机编程的高手吗?你能解答上面这位读者的疑问吗?不要犹豫,来我们这里展示一下你的风采吧,来信请发到pcw-chendx@vip.sina.com(也可以给我们发送问题)。
第七个QQ群: 72407081,验证码:手机开发。欢迎对手机编程感兴趣的朋友加入。
(陈跃峰 谭剑)
分享到:
相关推荐
1. 《电脑报》的历史:自1992年创刊至今,这份报纸已走过多年历程,见证了中国计算机行业的发展和变革。 2. 主办和主管单位:《电脑报》是由西南大学、重庆市科协共同主办和主管,这表明它具有一定的学术背景和官方...
7. 玩家社区:对于游戏爱好者来说,2018年的《电脑报》可能会提供最新游戏的评测、游戏硬件推荐、游戏玩法分享等内容。 需要注意的是,上述提到的所有内容都是根据《电脑报》的常规内容和2018年IT行业的大致情况所...
《电脑报十年珍藏版》(1991-2001)是一部记录了中国IT行业发展初期到中期重要历程的珍贵资料集。这是一份集合了十年间《电脑报》出版的所有报纸内容,涵盖了从个人计算机的普及、操作系统的发展、互联网的兴起,到...
电脑报电子版
电脑报2000合订本
《电脑报1992-2001》是一份极具历史价值的IT文献资料,它涵盖了1992年至2001年间中国计算机技术和信息科技发展的全貌。这十年是中国信息技术飞速发展的关键时期,从那时起,个人计算机逐渐普及,互联网开始萌芽并...
《电脑报2017年合订本》是2017年度《电脑报》所有期刊的集成,为读者提供了一种便捷的方式去回顾和学习当年的IT资讯和技术。这本合订本不仅包含了当年每一期的内容,还进行了原文编排,确保了信息的完整性和准确性,...
资源名称:《电脑报》2013年期刊汇总(持续更新)资源目录:【】《电脑报》(2013年第14期 4月15日出版)【】电脑报 13年第35期【】电脑报 13年第36期【】电脑报 2013年37期【】电脑报 2013年第10期3月18日出版 绝对...
电脑报第24期、电脑报第25期、电脑报第26期、电脑报第27期、电脑报第28期、电脑报第29期、电脑报第30期、电脑报第31期、电脑报第32期、电脑报第33期、电脑报第34期、电脑报第35期、电脑报第36期、电脑报第37期、电脑...
本期电脑报涵盖了多个领域的技术新闻和评测,内容丰富而且多样化,涵盖了小米 CC9 Pro 手机、Apple Watch 5、AMD 锐龙 9 3950X 等多个热门技术话题,同时也报道了职业打假第一人谈实名举报美团、房企血拼双十一、...
它通常会覆盖电脑技术的最新发展,包括硬件、软件、网络、多媒体、游戏、移动通讯等多个领域,面向的是对计算机知识感兴趣的普通读者群体以及行业专业人士。 电脑报的内容通常可以划分为以下几个方面: 1. 新闻...
其次,游戏方面,2006年正值网络游戏和单机游戏蓬勃发展的时期。《电脑报》可能会报道热门游戏如《魔兽世界》、《反恐精英》、《星际争霸II》等的攻略、秘籍和评测,以及新游戏的发布信息,帮助玩家了解和选择适合...
《电脑报》是中国历史悠久的计算机专业报纸,它涵盖了硬件评测、软件应用、网络安全、编程技术等众多IT领域的知识。2012年的合订本尤其有价值,因为它记录了当时的技术趋势和重大事件,比如云计算的崛起、移动互联网...
《电脑报》2017年第42期,高清PDF矢量版。 电脑报官方网站是中国发行量最大的计算机报——《电脑报》的官方网站,也是一个专业、全面、及时的数码产品信息聚合站。为用户及时提供每期电脑报上的精彩文章以及丰富的...
7. **学习资源**:《电脑报》的内容涵盖了计算机基础知识、软件应用、硬件维护、编程教程、网络安全等多个领域,对于IT爱好者和初学者来说是宝贵的自学资料。 8. **历史价值**:《电脑报阅读系统2005》不仅提供了...
- **标题含义**:这指的是《电脑报》在2018年发行的第50期PDF版电子文档。 - **描述含义**:与标题相同,再次强调了该文件是《电脑报》2018年第50期的PDF版本。 ### 2. 电脑报 - **含义**:《电脑报》是一份专注于...
2003年,《电脑报》成为了首批文化体制改革试点单位之一。这意味着它不仅在内容上不断创新,在运营模式上也进行了大胆尝试。此外,《电脑报》还连续六年荣获“中国500最具价值品牌”称号,这不仅是对其市场价值的...
【标题】"电脑报2008合订本 图片部分"揭示了这是一份包含2008年度《电脑报》图片内容的资源集合。《电脑报》是中国知名的计算机和信息技术类报纸,它提供了丰富的计算机知识、技术教程、产品评测、行业资讯等内容。...
《电脑报》于1992年1月3日由西南大学、重庆市科协正式创刊出版 是西南大学、重庆市科协主办和主管的计算机周报。17年来坚持“普及计算机知识,提高全民族文化素质”的办报宗旨,已由最初四开四版,扩大到四开一百版...