java小游戏设计--精选文档

上传人:公**** 文档编号:491284071 上传时间:2024-02-13 格式:DOC 页数:10 大小:67.50KB
返回 下载 相关 举报
java小游戏设计--精选文档_第1页
第1页 / 共10页
java小游戏设计--精选文档_第2页
第2页 / 共10页
java小游戏设计--精选文档_第3页
第3页 / 共10页
java小游戏设计--精选文档_第4页
第4页 / 共10页
java小游戏设计--精选文档_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《java小游戏设计--精选文档》由会员分享,可在线阅读,更多相关《java小游戏设计--精选文档(10页珍藏版)》请在金锄头文库上搜索。

1、华北科技学院计算机学院综合性实验实 验 报 告 课程名称 JAVA程序设计 实验学期 2014 至 2015 学年 第 1 学期学生所在院部 计算机学院 年级 专业班级 学生姓名 学号 任课教师 实验成绩 计算机学院制Java程序设计课程综合性实验报告开课实验室:基础四 2016年 11 月 28日实验题目基于java的拼图游戏一、 实验目的程序使用Eclipse集成开发环境完成,熟悉并掌握在Eclipse开发环境下编写Java程序。二、 设备与环境硬件:多媒体计算机软件:Windows系列操作系统、JDK开发包、Eclipse开发环境三、实验内容及要求1.实验要求使用Java swing编程

2、实现拼图游戏。游戏功能是将一幅图片分割成5*5的规则小图片,游戏开始时将25个小图片随机摆放,玩家能够参考原图拼接出正确的图片。游戏规则:在25个小图片中有一个为空白图片,玩家可以单击和空白小图片相邻的任一个小图片(上、下、左、右均可),即可将单击的小图片与空白小图片交换位置。通过有限次的移动,即可将随机分布的小图片恢复成原图的样式。2.实验内容(1)各类及主要成员函数的功能: java源代码及其功能序号类名主要功能1GreedSnake该类为程序入口,含有main方法。2SnakeControl实现控制运行等总体要求,实现方向键控制蛇的方向,空格键控制游戏暂停或继续,还有分数等。 3Snak

3、eModel该类实现蛇的结构和具体运动,如判断食物是否和怎样被吃掉及判断后的动作。 4Node该类实现组成蛇身的单位-食物。5SnakeView该类实现画板功能,用黑色画蛇身,红色画食物。(2)具体代码及实现如下:程序入口主方法:/第一部分public class GreedSnake /建立主类GreeSnake public static void main(String args) SnakeModel model = new SnakeModel(20,30);/初始化蛇出现的位置 SnakeControl control = new SnakeControl(model); Snak

4、eView view = new SnakeView(model,control); /添加一个观察者,让view成为model的观察者 model.addObserver(view); (new Thread(model).start(); 实现对蛇身的控制要求:/第二部分/游戏的Model类,负责所有游戏相关数据及运行 class SnakeControl implements KeyListener/SnakeControl实现接口KeyListener,键盘监听SnakeModel model;public SnakeControl(SnakeModel model) this.mod

5、el = model;public void keyPressed(KeyEvent e) int keyCode = e.getKeyCode(); if (model.running) / 运行状态下,处理的按键 switch (keyCode) case KeyEvent.VK_UP: model.changeDirection(SnakeModel.UP); break; case KeyEvent.VK_DOWN: model.changeDirection(SnakeModel.DOWN); break; case KeyEvent.VK_LEFT: model.changeDir

6、ection(SnakeModel.LEFT); break; case KeyEvent.VK_RIGHT: model.changeDirection(SnakeModel.RIGHT); break; case KeyEvent.VK_ADD: case KeyEvent.VK_PAGE_UP:/向上翻加速 model.speedUp(); break; case KeyEvent.VK_SUBTRACT: case KeyEvent.VK_PAGE_DOWN:/减速 model.speedDown(); break; case KeyEvent.VK_SPACE: case KeyEv

7、ent.VK_P: model.changePauseState();/暂停进入睡眠状态 break; default: / 任何情况下处理的按键,按键导致重新启动游戏 if (keyCode = KeyEvent.VK_R | keyCode = KeyEvent.VK_S | keyCode = KeyEvent.VK_ENTER) model.reset(); public void keyReleased(KeyEvent e) public void keyTyped(KeyEvent e) 实现蛇的结构和具体运动:/第三部分SuppressWarnings(“unchecked”)

8、class SnakeModel extends Observable implements Runnable /SnakeModel继承Observable类并且实现接口Runnableainfra matrix; / 指示位置上有没蛇体或食物LinkedList nodeArray = new LinkedList(); / 蛇体Node food;int maxX;int maxY;int direction = 2; / 蛇运行的方向ainfra running = false; / 运行状态int timeInterval = 200; / 时间间隔,毫秒double speedCh

9、angeRate = 0.75; / 每次得速度变化率ainfra paused = false; / 暂停标志int score = 0; / 得分int countMove = 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;publi

10、c SnakeModel( int maxX, int maxY) this.maxX = maxX; this.maxY = maxY; reset(); public void reset() direction = SnakeModel.UP; / 蛇运行的方向 timeInterval = 500; / 时间间隔,毫秒 paused = false; / 暂停标志 score = 0; / 得分 countMove = 0; / 吃到食物前移动的次数 / initial ainfr, 全部清0 matrix = new ainframaxX; for (int I = 0; I 20 ? 10 : maxX / 2; nodeArray.clear(); for (int I = 0; I initArrayLength; +i) int x = maxX / 2 + I;/maxX被初始化为20 int y = maxY / 2; /maxY被初始化为30 /nodeArray

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

当前位置:首页 > 资格认证/考试 > 人力资源管理师

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