J2ME手机游戏.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于J2ME 的2D手机游戏开发 系统需求分析 3.2系统功能分析 1.游戏计分功能 玩家消除一层方块,加100分,并把玩家的成绩显示在屏幕左边。并且提示下一个下坠物的形状。 2.增加游戏难度功能 当用户等分累计达到1万分时,游戏等级自动升一级,难度加大,下坠物的下坠速度变快,使游戏更具有挑战性。 3.改变方块图形的颜色 每次随即产生下坠物,都为改图形选择一种颜色,使游戏界面跟漂亮,更有可玩性。 4.数据保存(由于设备的限制没有使用数据库) 保存用户的游戏成绩,并有排名。最高纪录,而且用户在可以在游戏途中退出,并保存当前成绩,下次重新载入游戏状态。 5.多任务 支持中断, 如果用户有来电可以中断游戏,接电话,待接完电话,继续游戏。 游戏的设计与实现 游戏中算法设计 启动MIDlet后,就立即生成一个重绘线程,该线程每隔50ms绘制一次屏幕。当然,重绘时有一些优化措施,并不是屏幕上所有的像素都需要重绘,而是有所选择,比如游戏画布上那些已经固定下来的下坠物(下坠物一共有7种,由4个小砖块组成,每种下坠物颜色固定,可以上下左右旋转)就不需重绘。游戏画布是一个CommandListener,可以接受用户键盘命令,控制下坠物的左移,右移,下移,旋转动作。 游戏的设计与实现 整个游戏的流程控制体现在游戏画布对象的paint()方法里。paint()根据当前的游戏状态,绘制出当时的游戏画面。欢迎画面和Game Over画面的绘制相当简单。游戏暂停画面的绘制也相当容易,就是设立标志,让paint()执行的时候无需真正执行重绘动作。对于游戏处于运行状态的画面的绘制,则需要在下坠物的当前位置,绘制下坠物。在绘制下坠物之前,判断下坠物是否还能下坠,如果能下坠的话,就让它下落一格,再进行绘制,如果下坠物已无法下坠,则判断游戏是否处于Game Over状态,如果是处于Game Over状态的话,则设置游戏状态为Game over状态,这样画布在下一次重绘时就绘出Game Over的画面.如果游戏不是处于Game Over状态,则把下坠物固定下来,同时检查游戏画布上下坠物当前行下面的所有行,看是否需要进行行删除动作,如果需要行删除,则清除游戏地图上被删行的数据,再把被删行绘制成背景色。然后初始化一个新的下坠物,绘制这个新的下坠物。 游戏的设计与实现 1.小砖块 小砖块是下坠物和游戏容器的组成部分。表现为一个正方形,边长为游戏区域边长的1/16。每个小砖块在绘制的时候,4边会留出1个象素宽,绘制成白色或者灰色,这样砖块之间才有间隙。每种小砖块也有id,分别为1到8。我们可以用一个颜色数组(程序里叫 BRICK_COLORS)存储这8种颜色。若某种小砖块的id为3,那么该小砖的颜色为BRICK_COLORS[3-1]。 游戏的设计与实现 下坠物的实现 下坠物的数据结构 下坠物本质上为16个小砖块组成的正方形。下坠物一共有7种,比如有田字形的,L字形的等等。每种下坠物一共有4种旋转变化。每种下坠物都有一个id,分别为1到7。因为对于一种下坠物来说,其颜色是固定的。我们同样可以用该种颜色BRICK_COLORS数组中的下标值加上 1,作为下坠物的id。 blockpattern的编码规则:blockpattern表示一个下坠物体的形状,一种下坠物的颜色是固定的。对于一个下坠物,用一个三维数祖表示,第一维用rot表示(旋转值),第二维用x(也就是行),第三维用y表示(也就是列)。 下坠物 L行的数据结构 protected int blockpattern3[][][] = { { { 0, 1, 0, 0} , {0, 1, 0, 0} , {0, 1, 1, 0}, {0, 0, 0, 0}}, { {0, 0, 0, 0} , {0, 1, 1, 1} , {0, 1, 0, 0}, {0, 0, 0, 0}}, { { 0, 0, 0, 0}, {0, 1, 1, 0}, { 0, 0, 1, 0} , {0, 0, 1, 0}}, { {0, 0, 0, 0}, {0, 0, 1, 0} , {1, 1, 1, 0} , {0, 0, 0, 0}} }; 第一维有四个元素,代表旋转状态, 第二维 也是四个元素,代表行 第三维也是四个元素,代表列 当然如果一个正在下坠的物体, 行(高)有16个元素,列(宽)有12个元素 地图 游戏地图是用来存储游戏容器上的固定砖块的。游戏容器为一个宽为12个小砖块单位,高为16个小砖块单位,包括左右 2堵墙和下边的容器底在内。所以用一个16X12的二维数组(程序里叫mapdata)来存储固定砖块。如果mapdata[i] [j]=k(k!=0).那么就表示游戏容器的i行j列上有1个固定的小砖块,小

文档评论(0)

iris + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档