编写手机游戏贪吃蛇

上传人:小** 文档编号:88054477 上传时间:2019-04-17 格式:PPT 页数:31 大小:1.15MB
返回 下载 相关 举报
编写手机游戏贪吃蛇_第1页
第1页 / 共31页
编写手机游戏贪吃蛇_第2页
第2页 / 共31页
编写手机游戏贪吃蛇_第3页
第3页 / 共31页
编写手机游戏贪吃蛇_第4页
第4页 / 共31页
编写手机游戏贪吃蛇_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《编写手机游戏贪吃蛇》由会员分享,可在线阅读,更多相关《编写手机游戏贪吃蛇(31页珍藏版)》请在金锄头文库上搜索。

1、手机游戏之贪吃蛇,用J2ME语言编写一个手机游戏贪吃蛇。 搭建手机游戏的基本框架,理解每一块框架内容的基本含义,掌握手机游戏编程的方式。 了解并熟悉贪吃蛇游戏的规则。 解决程序逻辑难点。,本款游戏是原版贪吃蛇的改进版本,在原版的基础上添加了一些道具功能,使得游戏更具有可玩性,此游戏的开发有助于锻炼大家的逻辑思维能力和J2ME综合知识的运用。,游戏中涉及到的知识点: 1、LOGO图片的添加 (主要是LOGO图片的载入) 2、菜单界面的编写 (界面按钮的排版),3、游戏主界面的开发 4、创建初始“蛇”及“蛇”的移动,5、在屏幕中随机产生“蛇”点 6、蛇身吃到“蛇”点增长,7、添加特殊功能 8、添加

2、得分信息,9、判断游戏结束 10、分数排行榜,一、LOGO图片的添加 public void paint(Graphics g1paint) /在paint方法里进行图形界面的制作 GraphicsImageScreen.drawImage(logo, 0, 0, 0); 类似的方式添加,比较容易。,可以添加屏幕自动跳转功能,然后通过LIST清单添加 menuList = new List(“贪食蛇“, Choice.IMPLICIT, menuString, null); (注意只能是单选模式),二、菜单界面的编写 菜单界面包括标题、内容和按钮。其中内容有开始游戏、最高纪录、游戏说明、关于,

3、退出游戏。 例如写成接口的方式: public interface GameInfo String menuString = “开始游戏“, “最高记录“, “游戏说明“, “关于“, “退出游戏“ ;,效果图,先完成两个功能:游戏说明、关于。 说明里面完成游戏操作,玩法等介绍; 关于里面完成游戏制作的时间、制作人、版本的介绍。,效果图,三、游戏主界面的开发 屏幕的背景用白色,由于屏幕高比宽长,所以取以宽为边长的矩形区域作为游戏区域,剩下的部分作为分数、信息区域。(最好用明显标志分割),四、创建初始“蛇”及“蛇”的移动 蛇的初始长度为5,边长为10个像素(背景为黄色),蛇头初始位于屏幕(100

4、,30),方向向左,用向量表来记录每个蛇的位置以及方向。 部分参考代码如下: for (int i = 0; i 5; i+) SnakeNode n = new SnakeNode(); n.posX = 100; n.posY = 10 * i + 30; if (i = 0) n.direct = SnakeNode.LEFT; snake.addElement(n); ,蛇创建后,通过键盘上的方向键控制蛇的移动(总共上下左右四个方向),移动到边界后从另一端出来,注意其中相对的方向不相应(例如蛇正向左行驶,此时按右方向就无法移动,不响应),逻辑上只改变蛇头的位置和方向,蛇身部分的位置和方

5、向在下一个时间片改变为前一个蛇身的位置和方向即可。 部分参考代码: SnakeNode n = (SnakeNode) snake.elementAt(0);/蛇头部分方向控制 switch (key) case -1: if (n.direct != SnakeNode.DOWN) n.direct = SnakeNode.UP; break; ,for (int i = snake.size() - 1; i 0; i-) /蛇身部分改变 SnakeNode n1 = (SnakeNode) snake.elementAt(i); SnakeNode n2 = (SnakeNode) sn

6、ake.elementAt(i - 1); n1.posX = n2.posX; n1.posY = n2.posY; n1.direct = n2.direct; ,效果改变图,五、在屏幕中随机产生“蛇”点 在屏幕的游戏区域随机产生5个“蛇”点(颜色在道具的种类中随机),要求不能与蛇身重合,不能重复。(小于5个自动再随机) 部分参考代码: if (diamonds.size() maxDiamonds) /判断“蛇”点没有5个就随机产生 int c = rmd.nextInt(5); int x = rmd.nextInt(24) * 10; int y = rmd.nextInt(24)

7、* 10; for (int i = 0; i snake.size(); i+) SnakeNode s = (SnakeNode) snake.elementAt(i); if (x = s.posX ,六、蛇身吃到“蛇”点增长 当蛇身吃到“蛇”时,吃到的蛇自动增加到蛇的末端,蛇身长度增加1(颜色不变)。 部分参考代码: SnakeNode head = (SnakeNode) snake.elementAt(0);/蛇头 SnakeNode tail = (SnakeNode) snake.elementAt(snake.size() - 1);/蛇尾 for (int i = 0; i

8、 diamonds.size(); i+) SnakeNode n = (SnakeNode) diamonds.elementAt(i); if (head.posX = n.posX ,效果图,七、添加特殊功能 当连续吃到5个同样颜色的“蛇”点时将会触发特殊功能。 例如添加两个功能,连续吃到5个红色的蛇使游戏速度加倍,连续吃到5个绿色的蛇使游戏得分加倍,都持续一段时间。 部分参考代码: if (colorCount = 5) isEffect = true;/特殊功能触发 switch (showColor) case RED: effectIndex = 0;/事件ID speed =

9、100;/改变速度,以前是250,改小是速度变快 break; case GREEN: effectIndex = 1; addScore = 10;/改变得分,以前是5,增大是得分变多 break;,if (isEffect) switch (effectIndex) case 0: g.drawString(“两倍速度,持续时间:“ + (5 - effectCount * speed / 1000),80, 270, 0); break; case 1: g.drawString(“两倍得分,持续时间:“ + (5 - effectCount * speed / 2000),80, 27

10、0, 0); break; /在屏幕下方显示事件信息及持续时间,八、添加得分信息 可以简单设定,每吃到一个“蛇”点加上5分和“蛇”点的颜色积分。 参考代码: score += addScore + colorCount;,九、判断游戏结束 只有一种游戏结束的方式,即蛇头碰到蛇身游戏结束。 参考代码: public void isOver() SnakeNode head = (SnakeNode) snake.elementAt(0); for (int i = 1; i snake.size(); i+) SnakeNode n = (SnakeNode) snake.elementAt(i); if (head.posX = n.posX ,十、分数排行榜 通过所学的记录排序知识,列出分数的排行,初始要5个记录(1000,800,500,200,100),好了,一个改进版的贪吃蛇就有同学们开发出来了,大家有成就了吗? 谢谢!,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号