手机网游制造之游戏界面篇

开发程序:疯狂的炸弹

开发进度:第一期

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

开发平台: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的值进行不同的逻辑处理,从而实现状态机机制。

时间: 2024-09-09 05:17:45

手机网游制造之游戏界面篇的相关文章

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

开发程序:疯狂的炸弹 开发进度:第三期 本期要点:设计服务器端数据处理功能 开发平台:java平台 手机网游只有客户端是玩不起来的,必须要有服务器端.开发服务器端,最核心的就是设计服务器端的数据处理功能(完整的实例程序请到http://www.shudoo.com/bzsoft下载). 在一般的服务器端程序中,服务器端程序主要包含数据存储.程序逻辑控制和网络编程等部分,数据存储和程序逻辑控制结合的比较紧密,可以统称为数据处理.为了方便网络数据的传输和整个程序的维护,程序的服务器端最好跟客户端的开

手机网游制造之请求处理篇

开发程序:疯狂的炸弹 开发进度:第四期 本期要点:设计服务器端请求处理功能 开发平台:java平台 经过前面3期的讲解,我们的手机网游<疯狂的炸弹>大体已经完成,在加上上本期开发的请求处理功能,就OK啦.快来试试我们的<疯狂的炸弹>吧(游戏下载地址:http://www.shudoo.com/bzsoft). 既然是手机网游,自然客户端的数量就会比较多,所以多个客户端同时向服务器端发送请求的情况很常见.为了更好的运行,服务器端需要同时处理多个客户端的请求,这就是用到并发处理.下面就

手机网游制造之网络通信篇

开发程序:疯狂的炸弹 开发进度:第二期 本期要点:设计客户端网络功能 开发平台:java平台 上期我们讲了客户端游戏功能,设计的程序只是一个单机游戏,为什么会这样呢?因为没有网络功能,无法进行通信.本期,我们就介绍客户端网络功能的设计. 客户端网络功能设计思路 客户端网络功能就是将客户端的操作转换为数据发送给服务器端,并将服务器端反馈的数据以界面的形式呈现给用户.如果把所有的逻辑处理都放在服务器端,当然是最安全的形式,但是这样服务器端的压力会比较大,所以一般会将一些简单的程序逻辑,例如本示例中移

【C/S通信交互之HTTP篇】COCOS2DX(CLIENT)使用CURL与JETTY(SERVER)实现手机网游HTTP通信框架(内含解决CURL.H头文件找不到问题)

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2dx/870.html 之前已经分享过一篇基于Cocos2dx与服务器使用Socket进行通信的框架,还不太熟悉的请移步到如下博文中: [C/S通信交互之Socket篇]Cocos2dx(Client)使用BSD Socket与Mina(Server)手机网游通信框架! 那么今天Himi来分享如何在cocos2dx中

【C/S通信交互之SOCKET篇】COCOS2DX(CLIENT)使用BSD SOCKET与MINA(SERVER)手机网游通信框架!

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2dx/844.html 其实对于此篇算是对于这段时间网络研究的一个总结. 对于手游网络通信的交互,一般情况下,Socket长连接直接使用Mina框架即可,对于Http短连接使用Servlet 入口即可(那么对于后期将陆续更新Servlet博文) 那么本篇主要介绍Socket长连接,当然与此配对的跨平台通信则选择了BSD

手机网游“右派”的几句废话

在网络游戏领域中,我承认,我是偏"右"的保守派,这一点随着对行业的接触而日益加深.在其他http://www.aliyun.com/zixun/aggregation/11969.html">互联网应用领域,我相信有很多时候,创新是绝对成败的关键.但在网络游戏方面,网络游戏的"创新"和"成功"从经验看没有直接联系.几年时间里,我们经历见证了很多网络游戏和娱乐化社区的起落,相信每个人对于"传统"和"创新

成都瞄准手机网游哆可梦收购完美风暴

上个月,位于成都高新区天府软件园的数娱企业"成都哆可梦网络科技有限公司"首度对外宣布,以人民币6000万元,正式收购国内颇具实力网游开发团队"完美风暴",借此加速挺进网游市场步伐. 历经2009年的3G导入期,今年,将是3G在国内全面铺开的年份.2009年,中国移动互联网收入已破300亿元,而手机网游作为中国数字新媒体产业增长的新方向,已经引起了作为中国数娱"第三城"成都的关注. 6000万收购完美风暴 哆可梦三年建西部最大游戏基地 很多人知道成

cocos2d-x手机网游阶段流失诊断工具TuesdayData

Android手机网游阶段流失诊断工具--TuesdayData Client:C++ Server:Firefly 1.3.1 (python) DB:mysql 1.简介 本SDK是基于cocos2d-x游戏的稳定性以及阶段流失诊断的工具,具体可应用在网游从启动至游戏登陆之间,可将此期间的一切操作进行发送到服务器并存入服务器数据库,可从服务器方便的了解到程序在每个阶段出现问题的概率与部分用户流失的原因,并可针对某个阶段进行改良. 2.集成步骤 (1)导入PhoneNet.Java 将com文

手机网游服务器和客户端连接的链路测试!急!

问题描述 最近自己写手机网游服务器,服务器框架已经搭起来了,但是服务器和客户端之间通信的链路测试不知道怎么弄了,请各位高手大侠指点一下小女子,最好有源代码支持,小女子先谢谢各位大侠啦! 解决方案 解决方案二:此处省去87个字解决方案三:希望知道的大侠指点一下!谢谢啦!