java小游戏设计_第1页
java小游戏设计_第2页
java小游戏设计_第3页
java小游戏设计_第4页
java小游戏设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

华北科学技术院计算机学院综合实验如实报告课程名称JAVA编程实验学期2014 2015学年第一学期有学生的医院计算机学院年级专业课学生名字学号林和教师实验成绩计算机学院制Java程序设计课程综合实验报告开课实验室:基本4 2016年11月28日实验标题基于Java的益智游戏一、实验目的程序使用Eclipse集成开发环境执行,并在Eclipse开发环境中熟悉和掌握Java程序编写。二、设备和环境硬件:多媒体计算机软件:Windows系列操作系统、JDK开发工具包、Eclipse开发环境三、实验内容和要求1.实验要求用Java摆动编程实现益智游戏。游戏功能是将一张照片分割为5*5的有规律的小图像,在游戏开始时随机放置25张小图片,这样玩家就可以参照原始图片结合正确的图片。游戏规则:25个小图像中的一个是空白图片,玩家可以通过单击空白小图像(上、下、左、右都可能)和相邻的小图像之一,将单击的小图像与空白小图片交换。通过有限移动,可以将随机分布的小图恢复为原始图的样式。2.实验内容(1)各种类型和关键成员函数的功能:Java源代码及其功能序号类名主要功能1绿色蛇此类是程序的入口,包含main方法。2蛇形控件实现控制执行等总体要求,通过箭头键控制蛇方向,空格键控制游戏暂停或继续,得分等。3蛇模型做出判断像这样的蛇的结构和食物与否,判断如何食用的具体动作。4节点这个类实现构成蛇身体的单位-食物。5蛇视图实现画板功能,蛇身黑绿色,食物绿红色。(2)具体代码和实现包括:程序入口主要方法:/第一部分Public class GreedSnake /创建基类Greek snakepublic static void main(stringargs)Snake model=新建快照模型(20,30);/初始化蛇出现的位置Snake control=新建快照控制(model);Snake view=new snake view (model,control);添加观察者,使/view成为model的观察者model . addobserver(view);(新线程(模型)。start();实现蛇控制要求:/第二部分/负责所有与游戏相关的数据和执行的游戏的Model类class nake control implements KeyListener /snake control实现接口KeyListener,接收键盘蛇模型;Public snake control(快照模型)This.model=model公共语音密钥pressed (keyevent e) int keyCode=e . get keyCode();在If (model.running) /运行状态下处理的键Switch (keyCode) Case KeyEvent。VK_UP:model . change direction(snake model . up);BreakCase KeyEvent。VK_DOWN:model . change direction(snake model . down);BreakCase KeyEvent。VK_LEFT:model . change direction(snake model . left);BreakCase KeyEvent。VK_RIGHT:model . change direction(snake model . right);BreakCase KeyEvent。VK_ADD:Case KeyEvent。VK_PAGE_UP:/向上旋转加速度model . speedup();BreakCase KeyEvent。VK_SUBTRACT:case key event . vk _ page _ down :/减速model . speeddown();BreakCase KeyEvent。VK_SPACE:Case KeyEvent。VK_P:model . changepausestate();/暂停到睡眠状态BreakDefault:/在任何情况下都处理过的键,键击导致游戏重新开始If (keyCode=KeyEvent。VK_R |KeyCode=KeyEvent。VK_S |KeyCode=KeyEvent。VK_ENTER) model . reset();公共语音密钥发行版(keyevent e) Public void keyTyped(KeyEvent e) 蛇的结构和具体运动的实现:/第三部分 suppress warnings (unchecked )class nake model extendsObservable implements Runnable /snake model继承Observable类并实现接口Runnableain framatrix;/指示蛇或食物是否在位置上。linked list node array=new linked list();/蛇身Node foodInt maxXInt maxYint direction=2;/蛇执行方向Ainfra running=false/执行状态Int timeInterval=200/间隔,毫秒Double speedChangeRate=0.75/角速度变化率Ainfra paused=false/暂停标志int score=0;/分数int count move=0;/吃食物前移动的次数/UP and DOWN should be even/RIGHT and LEFT should be oddpublic static final int UP=2;public static final int DOWN=4;public static final int LEFT=1;public static final int RIGHT=3;Public snake model (intmaxx,intmaxy) This.maxX=maxXThis.maxY=maxYreset();Public void reset()Direction=SnakeModel。UP;/蛇执行方向TimeInterval=500/间隔,毫秒Paused=false/暂停标志score=0;/分数count move=0;/吃食物前移动的次数/initial ainfr,全部为零matrix=new ain framaxX;for(int I=0);I maxXI) matrixI=new ainframaxY;Arrays.fill(matrixi,false);/initial the snake/初始化蛇身,如果水平位置超过20个,则长度为10,否则水平位置的一半Int initraylength=maxx220?10 : maxX/2;nodear ray . clear();for(int I=0);I initArrayLengthI) int x=maxX/2 I;/maxX初始化为20int y=maxY/2;/maxY初始化为30/node array x,y : 10,15-11,15-12,15至20,15/默认运行方向上升,因此在游戏开始时,nodeArray为:/10,14-10,15-11,15-12,15 19,15NodeArray.addLast(new Node(x,y);matrixxy=true;/制作食物food=create food();matrixfood . xfood . y=true;public void change direction(int new direction)/更改的方向与原始方向相同,或不能反向If (direction% 2)!=newDirection% 2) Direction=newDirectionPublic ainfra mov

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论