张蕴
摘 要:当今时代,信息技术飞速发展,手机游戏成为人们经常接触的手机软件形式之一,它是人们改造世界的一大成果。手机软件发展日新月异,十分便捷,使人们进入全新的信息化社会。当前,手机游戏软件迅速发展,规模不断壮大,其弊端也日益突显。因此,本文研究了手机游戏在虚拟社区中的运用,分析了手机游戏系统的开发路径。
关键词:手机游戏;虚拟社区;J2ME
中图分类号:TP317文献标识码:A文章编号:1003-5168(2020)14-0030-03
Research on Application and Development of Mobile Games
in Virtual Community
ZHANG Yun
(Jinzhou Branch of Liaoning Radio and TV University,Jinzhou Liaoning 121000)
Abstract: In today's era, with the rapid development of information technology, mobile games have become one of the forms of mobile phone software that people often come into contact with, which is a major achievement for people to transform the world. The rapid development of mobile phone software is very convenient and allows people to enter a new information society. At present, mobile game software is developing rapidly and the scale is constantly growing, and its drawbacks are also increasingly prominent. Therefore, this paper studied the use of mobile games in virtual communities and analyzed the development path of mobile game systems.
Keywords: mobile games; virtual community;J2ME
游戏社区供游戏玩家讨论游戏,具有虚拟性,而移动游戏社區是指手机和平板电脑等移动设备上的游戏社区。随着移动互联网的普及与移动终端性能的提高,SNS(Social Networking Services,社会性网络服务)社区不再仅仅停留在计算机上,逐渐走进各种移动平台,如手机和平板电脑。与以往的虚拟社区相比,手机社区具有更好的实时性,可以提供LBS服务功能。目前,全球有大量移动游戏社区,如木瓜社区、OpenFeint、Scoreloop和Game Center等,每个社区都集成许多游戏,其通过游戏将用户联系起来,使游戏成为人际交往的重要内容。随着游戏社区功能的完善,移动游戏社区会发展得越来越好。
1 手机游戏发展现状
现如今,科学技术迅猛发展,电子产品更新换代速度加快。随着功能的日益丰富,人们对手机的依赖越来越大,手机是移动游戏社区的重要载体,手机游戏社区可以给社区成员提供诸多帮助,促进成员相互沟通、交流经验,因此人们要重视手机游戏的开发,并将手机游戏导入虚拟社区。
以前的非智能机在生产时都有固定的应用程序,不能在手机中安装其他程序,同时不能删除本机已有的程序。使用时,与本机有冲突的软件运行不了,即使发现错误,也不能更新、修改。为了体验新功能,人们需要更换手机。以往的非智能手机访问互联网采用WAP,如果网速较慢,就需要反复连接才能打开,十分耗时,流量费用较高。
Java编程技术在手机软件尤其是游戏开发方面的作用异常强大。用户可以根据个人需要,在网络里搜索应用程序,然后进行下载,不需要购买。网上软件能够根据手机类型进行分类,下载时只要选择和机型匹配的软件即可。另外,软件可以升级,只要下载相应的升级包,解压后就可以成功升级。Java编程技术能够创建一个类库,游戏软件的开发商可以依据它研发出更加丰富多样、使人产生浓厚兴趣的游戏界面。
Java编程技术使游戏软件运行更加流畅。Java编程技术促进了手机和手机游戏软件的发展,丰富了手机功能,极大地方便了移动游戏社区成员的沟通与交流。
2 系统开发
本研究以一款社区手机游戏软件为例,研究了手机游戏在虚拟社区中的运用,分析了手机游戏系统开发的具体路径。
2.1 Java ME
Java ME(Java 2 Micro Edition)是Java 2的组成部分之一[1],与J2SE、J2EE并称。与J2SE和J2EE相比,Java ME总体的运行场景和需要达到的目的变得更加丰富,可以让人们随心所欲地选择自己喜欢的手机软件,其使用方法设计得比较简单,容易操作。手机软件开发既要做到标准化和兼容性强,又要尽可能增加功能,让人们根据需要来选择。JAVA ME的构成有Profile、Configuration、和Optional Packages(可选包)。三者有机组合,相互作用,互为依靠,使得游戏软件的运行环境变得流畅,没有卡顿。
2.2 手机游戏开发过程
2.2.1 手机动画编辑器的设置。手机游戏文件的大小受手机硬件存储环境的制约。当前,能被手机支持的jar文件大小为59~200 K。为了尽可能在手机上运行更多的游戏,编程人员必须竭尽全力降低jar文件的大小。
手机游戏的jar文件通常包含Java代码编译后生成的class文件和图片、声音等资源文件两部分。在降低jar文件大小时,人们主要采用代码混淆和图像压缩两种手段。图像压缩的格式总体分为JEPG格式和PNG格式。
由于动画图片通常至少占手机游戏文件存储空间的2/3,因此怎样在不降低图片质量的前提下,最大程度地节省存储空间,保存游戏中的动画图片[2-3],是手机游戏开发过程中迫切需要解决的问题。
为了制作绚丽的动画,同时减轻程序员的负担,人们可以设想开发这样一种手机动画编辑器,它可以像Flash一样方便、快捷地制作动画,同时自动记录下相关的数据信息。只要将资源图片和这些信息导入手机中,通过解析,就可以得到相应的动画。这样,通过程序来拼接的烦琐过程就转变为美观、直观、便捷的操作过程,其流程如下:首先,软件要求读取一张包含所有动作的部件的资源图片;然后,新建或载入一个手机游戏动画工程。接着,编辑每个部件的组成,通过可视化的鼠标拖动操作来调节每个部件的位置,程序将在后台实时更新相应的数据信息;最后,在动画编辑完成后,将后台数据信息保存起来。
手机动画编辑器分为两种:一是图片编辑器,二是动画编辑器。图片编辑器的用途是切割图片,将大图片中每个部件用矩形框选定出来,并记录矩形区域的对角线坐标,以备制作动画时使用。将图片导入手机动画编辑器以后,就可以对切割后的图片进行像Flash一样的动画制作。
2.2.2 手机游戏动画程序流程图。人们要遵循手机游戏设计流程,合理绘制图片,保证图片质量。
2.2.2.1 手机游戏设计流程。一是要关注动画的色彩。手机屏幕较小,在玩时,人们的目光比较集中,所以手机游戏的动画色彩十分重要。色彩调整很方便,使用调整图层可以让动画色彩发生变化。人们可以通过调整灰度、明暗来提升色彩效果。合理调整后,玩家在使用手机进行游戏操作时可以产生浓厚的兴趣,又能长时间使用眼睛而不感到疲劳。二是衬托游戏主题。游戏主题必须有与之相匹配的动画设计,让玩家一看画面就能够有一个大致的认识。开场动画设计固然要做得大气,吸人眼球,但也要与内容相一致,否则,即使初期吸引一些玩家,但也会因为表里不一,使得玩家放弃。如果画面处理得当,即使没有华丽的游戏动画,游戏依然可以吸引不少玩家。当然,这需要手机游戏研发者对游戏有深刻的认识,能够抓住游戏的本质和特色,让自己的设计能够唤起玩家的共鸣。
2.2.2.2 绘制图片。好的游戏图形界面,给玩家在游戏中带来逼真的视觉效果。制作图片时,先要整理一份游戏图片的清单,避免图片各项参数对游戏的安装、运行等各个方面产生较大影响。一般来说,图片颜色越丰富,图片总数量越多,则游戏生成的jar包越大,安裝时会对机型提出较高要求;图片尺寸越大,在游戏中占用的内存就越多,这会严重影响游戏的运行速度甚至造成死机。整理图片的主要信息包括:图片类型、图片尺寸、每类图片的数量。
2.3 程序搭建分析
2.3.1 游戏构架的搭建。游戏的构架就如同人们的骨骼,整个游戏都需要在这个构架之中运行。一般来说,这个构架中包括MIDlet类和Canvas类等游戏运行必需的资源。Main类是MIDlet的子类,也就是整个游戏的入口。在Main类中维持着一个Game类的实例,Game代表珍格格游戏的画布,继承自Canvas。同时,Game类也维持着Main的一个实例,主要目的是调回MID中的方法。
2.3.2 动态背景的添加。添加动态场景,让游戏变得更加真实,构成背景的各个元素要以不同的速度移动——最顶层的元素移动速度最快,处于最底层的元素移动速度最慢,而对于覆盖最底层的中间层的元素来说,其移动速度比底层有所增加。
游戏背景分为4部分:最底层是天空,它是静止不动的,因为天空离主角太远;然后是天上的云彩,它以一个很小的速度运动;白云的上面一层是建筑物,其速度比白云快一些;最后是陆地,由于陆地处于最顶层,所以移动速度最快。
2.3.3 在游戏中加入主角。在生成背景后,接下来就是为游戏添加主角。这款游戏需要添加3个主角,他们分别是普林斯、莎拉和蒙面人。三个主角在相貌上完全不一样,但他们的动作则完全相同,所以可以用一个主角类来统一控制。这个类主要对主角的基本信息,如姿势、所持工具、状态等进行记录和管理,每一种基本信息都有一个成员变量与之对应。
2.3.4 制作一个地图类。在游戏中,进入关卡遇到的工具、障碍物、敌人和奖品的坐标都存放在一个特殊的类中,这个类就是地图类Map.java。这个地图类使用数据组记录了每个关卡中上述4种元素(工具、障碍物、敌人和奖品)的坐标,这样在程序初始化时就可以利用地图类中标记的元素个数和位置将这些元素创建出来,并放入相应的矢量队列中。
2.3.5 障碍物的添加。在游戏中,障碍物是相对静止的,因此只需要将在屏幕特定位置上显示的障碍物不断向左平移即可。
2.3.6 添加奖品和工具。添加工具和奖品与添加障碍物的方法基本相同,首先要创建奖品类和工具类,它们和障碍物类的结构大同小异,不过由于工具和奖品的图片比较小,在屏幕上不容易被看清,所以在绘制时让奖品和工具产生微小的颤动,使其在游戏中更容易被发现。
2.4 测试程序
先要对代码进行调试,进行调试时使用Eclipse来完成,调试中要用到WTK生成包(即jar文件和jad文件),主要操作如下:在新建项目功能中使用WTK建立一个新项目,并且同工作区下Netbean的项目名称、MIDlet类名保持一致。
整个测试过程主要就是通过找一些社区成员来体验这款游戏,在玩的过程中来查找游戏中哪里存在BUG。事实上,几乎每种游戏都会产生很多BUG。
2.5 与手机游戏相关的程序代码
#include
#include
#include
#include
using namespace std;
const int N=15; const char ChessBoardflag = ' '; const char flag1='o'; const char flag2='X'; typedef struct Coordinate
{
int x; //代表行
int y; //代表列
}Coordinate;
class GoBang
3 結论
随着科学技术的发展,手机功能越来越丰富,而移动游戏社区的出现极大地方便了游戏玩家的沟通与交流,使其可以获得更好的游戏体验。但是,由于时间准备不够充分,在整体布局过程中,这款社区手机游戏软件目前依然存在许多不妥之处,需要以后不断修改和完善。
参考文献:
[1]张玉清.计算机通信网安全协议的分析研究[D].西安:西安电子科技大学,2000.
[2]范红.安全协议形式化分析理论与方法[D].郑州:解放军信息工程大学,2003.
[3]Wenbo Mao.现代密码学理论与实践[M].北京:电子工业出版社,2004.