手机网游制造之游戏界面篇(已发电脑报)

电流互感器的使用分析 有关电流互感器使用的注意事项,回头再看,耳目一新。 阅读详情

目标手机软件

 

手机网游制造之

                游戏界面篇

开发程序:疯狂的炸弹

开发进度:第一期

本期要点:设计客户端游戏功能

开发平台: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,验证码:手机开发。欢迎对手机编程感兴趣的朋友加入。

(陈跃峰 谭剑)

小白跑WRF第五天,安装WPS和静态地理数据 小白跑WRF第四天,安装WPS一、WPS简介二、下载和安装WPSV4.0第一步、进入Build_WRF文件夹第二步、下载WPSV4.0第三步、解压WPS安装包第四步、修改intmath.f(必须执行)第五步、安装WPS三、修改namelist.wps 一、WPS简介 二、下载和安装WPSV4.0 第一步、进入Build_WRF文件夹 cd Build_WRF 第二步、下载WPSV4.0 下载WPSV4.0的安装包有以下三种方式: 利用Linux命令下载。 进入网站https://www2.mmm.uca 阅读详情

相关推荐

手把手讲解RTX5操作系统在GD32F407上的移植

然后将GD32F4xx_Demo_Suites_V2.6.4\GD32407V_START_Demo_Suites\Projects\01_GPIO_Running_LED下面的main函数复制到我们的项目文件夹中;打开对应GD32407V_START_Demo_Suites的文件夹下面的Utilities,复制gd32f407v_start.c和gd32f407v_start.h文件到一开始项目保存的文件夹下面;为了验证我们的操作系统是否被正确添加,是否能够正确运行,我们需要添加示例文件;

Praguejing的博客 1862

你妹都看得懂的手机网游制作教程(第1篇)说在前面的话

前言: 大家好。我是一个职业游戏开发者,现在在用“虚幻4”引擎开发游戏。此前也曾就职于cocos2d-x这个手机游戏引擎的研发公司。 在这边我准备了一个最简单的教程,想告诉大家制作一个游戏有多简单。 回忆起当年刚刚步入游戏这个行业,我也抱着非常多的疑问。 所以如果大家对游戏有兴趣的朋友,可以在下面留言。 这个

liuyuyefz的专栏 1977

基于单片机直流电机调速控制系统设计

*单片机设计介绍,基于单片机直流电机调速控制系统设计。

2201_75940997的博客 2781

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

目标手机软件 手机网游制造之                请求处理篇 开发程序:疯狂的炸弹开发进度:第四期本期要点:设计服务器端请求处理功能开发平台:Java平台 经过前面3期的讲解,我们的手机网游《疯狂的炸弹》大体已经完成,在加上上本期开发的请求处理功能,就OK啦。快来试试我们的《疯狂的炸弹》吧(游戏下载地址:http://www.shudoo.com/bz

爪哇米工作室陈跃峰的移动开发博客 5013

Duplicate Cleaner Pro 5.16 保姆级教程:如何用哈希值精准清理重复文件(附音频/视频模式详解)

本文详细介绍了Duplicate Cleaner Pro 5.16如何利用哈希值技术精准清理重复文件,特别针对音频、视频和图片等多媒体文件提供了专业解决方案。通过哈希算法比对和多媒体特征识别,帮助用户高效管理存储空间,提升文件整理效率。

weixin_27032989的博客 566

Obsidian跨设备同步实战:阿里云OSS与Remotely Save插件配置指南

本文详细介绍了如何利用阿里云OSS对象存储与Remotely Save插件,为Obsidian笔记软件搭建一个低成本、高可靠性的私有化多端同步方案。从创建OSS Bucket、配置CORS规则、生成子账户密钥,到插件安装与多设备同步策略,提供了完整的实战配置指南,有效解决Obsidian用户的跨设备同步痛点。

qsc901234567的博客 1284

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

目标手机软件手机网游制造之数据处理篇 开发程序:疯狂的炸弹开发进度:第三期本期要点:设计服务器端数据处理功能开发平台:Java平台 手机网游只有客户端是玩不起来的,必须要有服务器端。开发服务器端,最核心的就是设计服务器端的数据处理功能(完整的实例程序请到http://www.shudoo.com/bzsoft下载)。        在一般的服务器端程序中,服务器

爪哇米工作室陈跃峰的移动开发博客 4893

2025华为OD 面试手撕代码真题【字符串至多删除一个字符,是否能构成回文串】

2025华为OD 面试手撕代码真题【字符串至多删除一个字符,是否能构成回文串】

MISAYAONE的博客 1706

手机网游制造之网络通信篇(已发《电脑报》)

目标手机软件手机网游制造之网络通信篇 开发程序:疯狂的炸弹开发进度:第二期本期要点:设计客户端网络功能开发平台:Java平台 上期我们讲了客户端游戏功能,设计的程序只是一个单机游戏,为什么会这样呢?因为没有网络功能,无法进行通信。本期,我们就介绍客户端网络功能的设计。 客户端网络功能设计思路       客户端网络功能就是将客户端的操作转换为数据发送给服务器

爪哇米工作室陈跃峰的移动开发博客 3734

ethernet eth0: Could not attach to PHY

整个流程看下来就是MAC connect PHY的过程失败了,失败的具体原因根据config_init,上图(bcm54xx_config_init) ,从此方向入手去定位原因;我这里的问题是has_gmac4没有置1,根据 has_gmac4: uses GMAC4 core.按照上面的调用逻辑,添加了部分打印,定位到__phy_read接口返回失败。stmmac_mdio_read 大部分都是linux的标准接口。最终取决于平台用的是哪家的phy,调用config_init。

无线互联&网络介绍 2702

保姆级教程!Python爬虫爬取知乎回答,保存为Markdown文件

本教程实现了知乎公开回答的完整爬取与Markdown保存,核心流程为「请求页面→解析作者/时间/正文/图片→下载图片→保存MD文件」,步骤清晰,代码可直接复用关键特性:支持合并/单文件两种保存模式、自动下载图片并引用、中文乱码防护、非法文件名过滤,满足日常整理知乎回答的需求新手友好:无需复杂配置,仅需修改知乎问题URL即可运行,全程无坑,5分钟内可看到运行结果灵活扩展:支持进阶优化(登录、分页、格式完善),可根据个人需求调整功能。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1232

使用Java ME技术开发手机密码管理软件(已发《电脑编程技巧和维护》11月上)

 使用Java ME技术开发手机密码管理软件陈跃峰       摘要:Java ME技术是3G开发主流的技术之一,本文将通过系统的方式介绍如何使用Java ME技术开发密码管理软件,使大家能够通过该文章快速熟悉Java ME技术,进入3G移动程序开发的大门!关键字:Java ME 手机 密码 管理 记录存储 一、引言       随着3G时代的到来,手机程序开发作为一个新兴

爪哇米工作室陈跃峰的移动开发博客 5782

基于单片机的智能温控风扇设计

该智能温控风扇系统的设计目标是根据环境温度自动控制风扇的转速或开关状态,确保用户始终处于舒适的温度范围内。实时温度监测:通过温度传感器(如DS18B20或DHT22)实时监控环境温度。风扇控制:根据温度变化自动调节风扇的转速,温度过高时风扇加速,温度适中时风扇转速降低,达到节能与舒适平衡。LCD显示:通过LCD屏幕实时显示温度信息。无线通信:通过Wi-Fi或蓝牙模块将温度数据发送至手机或云平台,支持远程控制风扇的开关或调节转速。报警功能:温度过高或过低时,蜂鸣器发出警报,提示用户注意。

2201_76125393的博客 1158

流量多少 程序统计(已发电脑报)

目标手机软件流量多少 程序统计   模仿功能:流量统计模仿对象:手机QQ 2008模仿进度:第二期开发平台:Java平台     3G来了,可移动、联通收费还是按流量计算,像手机QQ 2008这种需要网络通信的程序就有必要配备流量统计的功能,方便用户实时掌握了流量使用的状况。 流量统计功能设计思路      在手机网络软件使用中,需要产生一定的网络流量,该流

爪哇米工作室陈跃峰的移动开发博客 5555

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

截图 不需要专用工具(已发电脑报)

目标手机软件截图 不需要专用工具模仿功能:截图模块模仿对象:手机QQ 2008模仿进度:第四期开发平台:Java平台          涉及网络应用和游戏的手机程序可以嵌入截图模块,这样需要截图时直接在程序中完成,不要再调用专门的截图工具。 截图模块设计思路         截图模块的作用是将当前屏幕中的内容存储起来,而被存储起来的内容可以发送给好友或存储到

爪哇米工作室陈跃峰的移动开发博客 4856

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

我的程序 能节能休眠(已发电脑报)

我的程序 能节能休眠模仿功能:节能休眠模式模仿对象:手机QQ2008模仿进度:第一期开发平台:Java平台        开发手机程序是需要经验,可很多读者都是才从PC平台转型而来,根本没有经验,如何快速的提高自己手机平台的开发经验呢?模仿设计,模仿知名手机程序的特色功能进行设计,快速积累手机平台的开发经验。下面,我们就选定手机QQ2008,模仿它的特色功能,先来看看“节能

爪哇米工作室陈跃峰的移动开发博客 4292

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

《程序显示 随环境而变》(已发电脑报第19期)

目标手机软件程序显示 随环境而变模仿功能:环境模块模仿对象:手机QQ 2008模仿进度:第三期开发平台:Java平台 设计手机程序,要考虑手机使用的特殊性,可以像手机QQ 2008那样,程序显示的亮度、背景色等根据时间和环境不同而变化。 环境模块功能设计思路环境模块功能是一种贴心的设计,该功能使得手机软件在不同的场景下都获得良好的界面效果,从而使手机软件可以

爪哇米工作室陈跃峰的移动开发博客 2441

【Unity知识速递】第7期 Unity 6.6 深度解析:WebGPU 正式版与 WebAssembly64,Web 游戏的内存革命

如何启用 Wasm64?需要注意的是,Wasm64 需要浏览器支持 Memory64 提案,目前主流浏览器的最新版本都已支持。一句话总结: Unity 6.6 用 WebGPU 转正、Wasm64 16GB 内存和渐进式加载三连击,将 Web 游戏的体验天花板又往上推了一大截——Web 平台不再是"妥协版",正在成为真正的一等公民。Unity 6.6 新增了 WebAssembly64(Wasm64) 构建选项,这可能是本次更新中对 Web 游戏开发者影响最大的一项升级。

crystal_WJT的博客 424

设计模式(unity游戏研发版)

当你使用图形用户界面类时通常会遇到一个问题。比如,你创建了自定义按钮类并允许客户端在按钮中注入自定义代码,这样当用户按下按钮时就会触发这些代码。观察者模式允许任何实现了订阅者接口的对象订阅发布者对象的事件通知。你可在按钮中添加订阅机制,允许客户端通过自定义订阅类注入自定义代码。在Unity中,这就像UnityEvent在Inspector中绑定多个回调。

m0_63330263的博客 97

我给 DeepSeek 大肥鱼做了一款马里奥式闯关游戏

当全网都在把大肥鱼做成直播虚拟主播的时候,我决定给她做一款横版闯关游戏。

2301_79028807的博客 895

Claude Fable 5.2 登顶:65 分、单发做游戏,和一份 $26.54 一单的账单

Anthropic 发布 Claude Fable 5.2:AA 智能指数 65 分登顶历史第一,但性能 #71、成本 #73、冗余度 #72——最强能力、最贵成本、最慢速度的矛盾体。同底层 Mythos 5.2 无护栏反而更强。文章拆解:65 分构成、官方实战验收、基准提升真伪、一条提示词一晚做出街机游戏的完整流水线(自写机器人跑完 12 关自检)、$26.54 账单与 98% 缓存折扣下的真实成本重估。

johnsong2009的博客 217

Unity 数据存储指南:本地存储、个性化设置、缓存与 Resources/StreamingAssets 的区别

在 Unity 开发中,“数据存到哪里”、“缓存能不能清”、“打包后资源有什么区别” 是新手最容易混淆、老手也经常踩坑的问题。Unity 本地存储机制(包括 Unity 放在 C 盘的内容);Unity 个性化设置(编辑器首选项 Editor Preferences);Unity 缓存的打开、关闭与清理;打包后 Resources 与 StreamingAssets 的区别;其他可自定义存储的内容汇总。为方便理解,本文配有一个可直接运行的演示工程,所有代码见文末"配套工程说明"。

zhchyun 206
上一篇: 挨踢人生路--记我的10年18家工作经历(转载)
下一篇: 手机网游制造之网络通信篇(已发《电脑报》)
网络咖啡
博客等级 码龄25年 1万+粉丝 373原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值