2023年7月26日发(作者:)
绿色质量观察 基于J2ME智能手机的贪吃蛇游戏开发 Smart Mobile Snake Game Development Based on J2ME 王冬霞,张玉辉,占俊(景德镇高等专科学校,江西景德 镇333000) Wang Dong-xia,Zhang Yu-hui.Zhan Jun(Jingdezhen Compre— hensive College,Jiangxi Jingdezhen 333000) 摘要:随着智能手机的逐步普及,手机游戏也日益流行起来。本文采用流行的J2ME手机应用开发平台,利用 J2ME的移动开发MIDP架构,设计和开发了一款贪吃蛇游戏,并详细描述其开发过程。 关键词:手机游戏;J2ME;MIDP 中图分类号:TP311.52 文献标识码:A 文章编号:1003—0107(2011)04-0032—02 ,Abstract:With the gradual popularization of smart phones mobile games are increasingly popular In this paperusing the popular J2ME mobile application development platform and MIDP Mobile Development Architecture of J2ME.designed and develped a Snake game oin detai lKev words:mobile games;J2ME;MIDP CLC number:TP31 1 52 Document code:A Article ID:1003-01o7(2ol 1)o4—0032—02 1引言 近年来,随着通信技术的高速发展,移动网络和移动终端 性能的不断提高与完善,以及手机的高普及率,使得人们对手 机终端应用开发的需求在不端增大。其对手机的要求已不仅 仅是作为简单的通讯T具,而是渐渐习惯于将手机最为新的 娱乐工具,而手机游戏在手机应用程序中所占的比例是最 大的。 Sun公司的J2ME(Java 2 Micro Edition)平台作为承载移动 增值业务的主要平台之一,专门针对能力受限的小型移动设 备,为手机游戏开发提供了得天独厚的环境。Java语言能够实 现具备复杂逻辑和功能的手机游戏,J2ME是Java平台标准的 子集,和符合Java标准的程序有更好的兼容性,大量已有的 Java游戏程序将被应用到手机上或者和手机应用互动。因此, 在当前J2ME手机游戏有着巨大的市场机遇和商业价值的背 景下,在J2ME手机游戏技术比较成熟的背景下,加强J2ME 图1l-贪吃蛇”游戏总体流程图 3系统实现 设计采用i 向对象的思想,整个游戏包括两大类:一是入 口类SnakeMidlet;另一个是Canvas类SnakeCanvas。 手机游戏的开发来满足市场的需求是大势所趋。 本文以一款老少皆宜的经典游戏——贪吃蛇为例,介绍 了基于J2ME技术手机游戏的开发卜j实现。 3.1 SnakeMidlet类的实现 2贪吃蛇游戏的设计与实现 贪吃蛇手机游戏是一款非常经典的游戏,虽然有很多版 本,但游戏的规则大体相同:移动”蛇”,使”蛇”吃掉食物f即 ”蛇头”与”食物”重合),如果正确吞吃食物,”蛇身”自动 SnakeMidlet类只是完成Display和SnakeCanvas的实例 化,并作退出游戏的丁作。首先定义一个Display对象和 SnakeCanvas对象及本身的一个实例化对象。在构造函数中对 其进行实例化,并在startApp0 ̄i数中启动游戏。 增长一节;反之,如果”蛇”在移动过程中撞到活动界面的边 界线或碰到自己的身体,则游戏结束。 由游戏规则我们知道,”贪吃蛇”游戏的主要用户是玩 3.2 SnakeCanvas类属性分析 由贪吃蛇的游戏规则我们知道,贪吃蛇吃了食物后身体 的长度会不断地变长,设计中用小方块代替食物,每个食物都 应有其坐标属性,同时为了使贪吃蛇的色彩丰富,添加了一个 家,玩家如果要玩游戏, 先必须先进入游戏,玩游戏,游戏结 束后,存储积分然后退 游戏。可将问题分为4个基本用例: 进入游戏、玩游戏、存储信息、退 游戏。贪吃蛇游戏的流程冈 如图1所示. 颜色的属性。而贪吃蛇的蛇身南多个食物连接而成,设计中用 链表SnakeLink来实现。每个食物的长度和宽度是一样的,所 2011第04期 囵 D产品设计与开发 I roduct Design and Development 以定义两个常量SNAKE—W和SNAKE—H来表示其长度属性 和宽度属性。另外,贪吃蛇有上下左右四个移动方向,用变量 direction表,J ,DIR—UP,DIR—DOWN,DIR—LEFF,DIR~RIGHT 四个常量分别表示I F左右四个方向。食物是随机出现在屏 幕七的,所以需要定义一个随机变量random。屏幕的长与宽分 别用常量SCREEN—W和SCREEN_}{表示。对这些基本元素 进行定义后在构造函数中对变量进行初始化。 3.3 SnakeCanvas类的主线程 用户开始游戏后,进入主线程。主线程包括两个重要函 数:一个是游戏逻辑主函数main0;另一个是游戏逻辑绘制函 数。Main0I ̄数要考虑 个主要问题:(1)贪吃蛇是否能吃到食 物;(2)贪吃蛇是否碰到游戏屏幕或者碰到自身;(3)贪吃蛇的移 动问题。 第一个问题,是要判断贪吃蛇的蛇头的下一步行为是否 碰到食物,只要蛇头位置与食物的位置发生重合就表明贪吃 蛇町以吃到食物,否则无法吃到食物。程序设计中首先判断贪 吃蛇的移动方向,以便得到它的下~步位移量,然后计算蛇头 下一步的位置,最后做 判断。如果能吃到食物,再生成新的 食物,同时增加蛇身长度。注意新的食物是用随机函数生成, 不能与蛇身重合。 第二 问题比较容易实现,判断贪吃蛇是否超出边界坐 标以及是否有重叠部分。代码如F: //判断是甭超m边界 i nakeI ink一>Weight<0 II SnakeLink~>Weight> ̄CREEN— W—SNAKEff Snake1 ink->Heighf<0 l lSnakeI ink一>Height>(SCREEN—H SNAKEH)){ re|urn true; } //判断是否碰到自身 pl=head; whilefSnakeLink一>next!=NULL) { I)1++; if(head——>Weight==pl——>Weight&&head——>Height==pI——>Height) retrun true; } 最后一个问题是解决贪吃蛇的移动。除蛇头外,蛇身位置 均将后面一个部位的位置变为前面一个部位的位置,而蛇头 的位置,需要加上方向位移量。 绘制功能由Canvas的paint0方法来实现,需绘制的内容 由main0函数来句顶。游戏画面包括贪吃蛇和食物,每一帧贪 吃蛇和食物都可能要改变状态,所以屏幕画面都需要更新、擦 除以及重绘。 3.4 SnakeCanvas的按键操作 按键是用户与游戏交互的T=具。设计中利用表单的键盘 事件KeyPress响应键盘上的”上下左右”键,以此来控制蛇 上下左右四个方向。如果不按键,蛇身按照原来的方向自动 囵盂 詹童 移动。 3.5游戏积分存储 MIDP中的存储系统称为记录管理系统Record Management System,RMS),它类似于数据库系统,使一个简单的面向记录的数 据库模型。通常每个数据一条记录的存取方式即占用空问,又占 时间。我们在设计时只使用记录系统的第一条记录,勿乱修改或 者删除数据都在这一条记录中进行,这样就解决了存储空间和存 取时间的问题。 3.6调试运行 本程序通过Eclipse+EclipseME开发平台进行编写,在编 写测试过程中已经将预处理、编译、打包等流程自动化,调用 Ant脚本能自动将应用程序打包成JAR文件,同时生成相应 的JAD文件,然后即可使用该JAD和JAR文件在模拟器上进 行调试、运行。在模拟器上运行的效果如图2所示。 图2贪吃蛇游戏在模拟器上运行效果图 4结论 本文分析研究了J2ME技术,通过详细介绍”贪吃蛇”游 戏的开发全过程,对相关的技术设计和实现方法进行了细节 的描述,并在模拟器上测试运行,效果较好。 参考文献: [1】施铮.J2ME无线移动游戏开发[MI.北京:人民邮电出版社, 2006. 【2J李强.J2ME手机游戏编程入门【M1.北京:人民邮电出版社, 20o5. f317Y辉,王军.基于Eclipse环境的J2ME应用程序开发【M】.北 京:清华大学出版社,2009. HII ̄H 东,陶壮志.基于J2ME智能手机的拼图游戏开发【J1.湖 南城市学院学报(自然科学),2010,19(1):61~63. 【5】李振军,成良玉.基于MIDP的Java手机游戏开发方法的分 析与实现『J1.计算机应用,2004,24(3):237—241.
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1690317455a331711.html
评论列表(0条)