鑫薹Ⅵ澄斟Bi l l
基于j2m e的手机2D游戏架构分析
张旭辉
(沈阳职业技术学院辽宁沈阳110045)
[摘要】基于j ava2M i cr oedi t i o n的开发环境对手机中的2D游戏架构进行分析与设计,利用Ecl i pse和W T K等I D E进行编程实现,经过实验证明该架构在手机2D游戏中具有较好的通用性和可移植性。
[关键词】j2m e M ID l et手机2D游戏地图读取碰撞检测
中图分类号:TP3文献标识码:A文章编号:1671--7597(2008)1110028--01
一、引■
随着移动用户的不断增加,人们已经不再满足于手机基本的通信功能,所以手机就逐渐成为一个集通信、娱乐、应用于一身的多面手。手机游戏的特点是:第一:休闲娱乐性:第二:可随时中断性;第三:手机游戏受到硬件的制约.以单机2D游戏为主.当然随着技术的不断发展以及3G概念的引入,手机游戏产业将最终颠覆这个局面。本文主要是通过对手机2D游戏的架构分析和编程实现来剖析手机游戏的基本制作.
=、j aV82M i cr oodi t i on技术
这里我们主要采用的技术是j2m e,原因包括两个方面:首先是J aya语言具有平台无关性。另一方面随着移动技术的发展,越来越多的品牌手机能够支持Java应用.S un提供J ava娅这一J ava的微型版本,也就是J ava SD K的M i cr oE di t i on,提供了手机、PD A等移动设备、信息家电等的开发平台和相对较少的A PI以适用于移动领域的开发。Jav a M E中最常用的支持手机平台开发的规范是C LD C和M I D P,CL D c是指有限链接设备配置,包含一个基本的j2m e运行环境,提供适合于小型的、资源受限、连接设备上使用的标准Jav a平台。M I D P是指移动信息设备简表,是C LD C第一个实现的简表,提供给应用程序许多语义和控件、用户界面、持久存储器等,在M I D P规范上可以创建应用程序,也就是M I Dl et,用于实现移动应用逻辑.
三、系统分析与设计
(--)系统分析
手机2D游戏架构实现的主要目的是建立一个基于j2m e技术和手机平台的2D游戏的框架,重点是在于框架性,通用性和可移植性。整个架构包括2D游戏中的背景实现,主角与npc之间的关系,键盘处理,窗口切换,人物的移动,为了使程序更加集成化,抽象化,还把主角与n pc的共同点抽象出来形成游戏精灵类。因为是游戏架构。所以只实现一些2D游戏共同的动作,没有特别具体的游戏规则。
(二)基本架构设计
整个架构的主要功能包括以下几个方面:(1)背景绘制:背景这里指的是大背景,主要是一幅与游戏的整体氛围较符合的图片,是整张图片的显示,所以比较简单。(2)地图的绘制:游戏的地图根据游戏的内容不同而不同,所以比较随机,我们主要采用的方法是由地图编辑器将地图编辑成t xt文件,然后利用类读取t xt文件,这样就能将文本内容从代码中分离出来,使程序更加清晰。(3)窗口的切换:游戏具有滚屏功能,在滚屏时如何切换窗口才会使游戏看起来具有较好的连续性。(4)主角的显示和绘制:游戏自然少不了主角,主角的形象可以由美工提供,这里我们要实现的主要是主角的出现,以及键盘对主角的控制,边界的判断等。(5) npc的显示和移动:npc指的是游戏中不受玩家控制的角,一般为一些小怪物,敌人等,可以在一定范围内进行反复的移动.
■、系绞实现
该系统采用的是E c l i ps e+Ecl i pse m e+W TK开发,运行模拟器采用的是'm【自带的模拟器。
(一)背景信息的实现
1.背景,her o,npc之间的关系分析。大背景为一张整幅的图片。he r o和npc均可以穿越,为可碰撞层,只需要在c蛐va类中显示即可.而地臻I层与her o和np c则要判断碰撞,以及边界处理,还有视窗切换.
2.地图类的具体实现。主要功能:地图类。作用:从t x t文件中读取地图的设置,主要采用流的方式。构成包括静态属性(行号r,列号c,单元格的高和宽t w,t h,地图数组m apDat a[][],玩家坐标p x,PY,n pc坐标nx,ny,图层t1)和动态方法:构造函数(主要实现载入图像,获取数据,生成图层)。其甲获取数据主要是将t x t文件中的数据以字符串的截取方式放到生成的v ect or动态数组中,每行数据放到一个ve ct or元素中,最后将v ect or中的数据导入到m apD at a二维数组中.
(二)人物的实现
gam eSpr i t e类的设计和实现
ga m eSp r i t e类是整个项目的重点,也是he r o和npc的抽象父类,所以设计此类也要设计出he r o和npc的共同点,而且这里还有一些抽象类的知识.作用:抽象类(a bst r act)设计角基本动作,留出接口。
动态方法——初始化(:接收一些变量并进行初始化,例如初始速度,地图等;跳:人物的跳,需要判断人物是否降落到地上同时也可以适当处理她心引力;移动:上下左右移动,左右为键盘操作判断边界和碰撞,上为跳,下为自由降落;碰撞判断:判断四个方向的碰撞
抽象方法一改变方向后:publi c abs t r act voi d af t er C h angeD i r
(i nt ne w D i r);水平碰撞后:publ i c abst r act voi d af t er H cr a sh(i nt cras hD i r);向某方向成功移动一步后:.p ubl i c atI s t ract voi d af t e r O kM ove(i nt m oveD i r)。
主角类与npc类必须继承gam eSp r i t e类并实现接口。
(三)主游戏逻辑
M ID l et类作为程序的入口处,实现程序的退出和销毁功能。gam eC a nvas类是将所有对象按照游戏的规则集合在游戏框架内,是整个程序的核心所在。实现键盘监控,游戏逻辑,游戏绘制,屏幕刷新等功能.核心代码:r un(游戏主线程)
w h i l e(t r u e)
行,所以写入死循环
{
K ey()l
Ti ck():
pai nt G a m e()l
t h i s.f l ush G r ap hi c s()l
t r y{
T hr e ad.s]eep(100):
,速,进行线程睡眠
//为了使线程能够不断的进
//处理键盘时问
//处理游戏逻辑
//进行游戏的屏幕绘制
//屏幕刷新
//为了使屏幕刷新不至于太过快
学习编程的单机游戏
)
c at c h(I nt e r r r upt e dE xcept i on ex){)
}
五、麓论
该项目实现了手机2D游戏的基本框架。包括地图的读取,人物和npc的实现,碰撞检测等。同时该项目具有一定的通用性,适用于所有基于j2m e平台的2D类游戏.
参考文献:
[1]李振鹏,j2m e手机游戏开发技术详解.清华大学出版社.2006.
[2】王蔚。j2aeshoj i游戏设计技术与实现.电子工业出版社.2007

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。