没有合适的资源?快使用搜索试试~ 我知道了~
面向对象课程设计-java-贪吃蛇.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 141 浏览量
2022-06-19
19:45:45
上传
评论
收藏 486KB PDF 举报
温馨提示
试读
19页
。。。
资源推荐
资源详情
资源评论
面向对象课程设计
1.需求分析
1.1 游戏开发的可行性
游戏开发至今已经有 30 多年,在这个短暂的时期里,随着硬件水平的提高,
游戏开发新技术层出不穷,经典游戏比比皆是。游戏这个名称一直就存在于每个
人的日常生活中,如猜拳游戏、猜谜游戏、大地游戏、球类游戏等,林林总总,不
胜枚举,甚至于有些流行歌曲把人生也比喻为游戏,好比“一场游戏一场梦” 。
因此,游戏对于现代人的成长历程,绝对是一个不可或缺的重要角色。
1.2 设计目的
综合运用在校期间所学理论知识和技能,设计开发贪吃蛇游戏,使自己熟悉
应用系统的开发过程,培养独立思考能力,检验学习效果和动手能力,提高工程
实践能力。
1.3 游戏需求
给出 1 条小蛇和随机出 1 个食物当小蛇吃到食物时就加分。
1.3.1 游戏界面需求
良好的用户界面,有分数显示。有存取档功能,并且可以暂停,还有“英雄
榜”记录分数排名情况,并且可调节小蛇运动速度。
1.3.2 游戏形状(方块)需求
良好的方块形状设计,绘制小蛇和食物,小蛇由几个方块组成,食物由 1 个
方块组成。
1.3.3 键盘处理事件
小蛇可通过键盘方向键(上、下、左、右键)进行向上、向下、向左、向右
移动。
1.3.4 显示需求
当小蛇吃掉几个食物后会变长,并且吃完食物时食物会消失,并立即随机生
成 1 个新的食物。
1.3.5 接口控制
本软件需求通过键盘进行操作,在Windows的操作系统下,利用键盘的上、
下、左、右键对小蛇进行移动操作,要使用键盘的接口事件。
2.功能设计及源程序的主要部分
2.1 游戏流程图
2.2 功能的实现,类的实现及类层次
2.2.1游戏界面
public SnakeFrame() {
setSize(width, height); //设置窗体大小
setTitle("贪吃蛇"); //标题
SnakePanel panel = new SnakePanel();//游戏面板
add(panel); //将面板添加到窗体中
setLocation(260, 160); //设置窗体位置
setVisible(true);
setResizable(false); //禁用窗体最大化
}
2.2.2功能按钮
public SnakePanel() {//构造函数
//添加功能按钮
setLayout(null);
add(startGame);
add(stopGame);
add(saveGame);
add(listGame);
add(newGame);
add(exitGame);
//设置位置
startGame.setBounds(402, 50, 80, 40);
stopGame.setBounds(402, 100, 80, 40);
saveGame.setBounds(402, 150, 80, 40);
listGame.setBounds(402,200, 80, 40);
newGame.setBounds(402, 250, 80, 40);
exitGame.setBounds(402, 300, 80, 40);
//添加监视器
ButtonListener btnListener=new ButtonListener();
startGame.addActionListener(btnListener);
stopGame.addActionListener(btnListener);
saveGame.addActionListener(btnListener);
listGame.addActionListener(btnListener);
newGame.addActionListener(btnListener);
exitGame.addActionListener(btnListener);
//取消所有 Button 的焦点
startGame.setFocusable(false);
stopGame.setFocusable(false);
saveGame.setFocusable(false);
listGame.setFocusable(false);
newGame.setFocusable(false);
//速度
String speed[]={"1","2","3","4","5","预设"};
combspeed=new JComboBox(speed);
combspeed.setBorder(BorderFactory.createTitledBorder("速度"));
add(combspeed);//添加组合框
combspeed.setBounds(402,340,80,46);
comboBoxListener comblistener=new comboBoxListener();
combspeed.addActionListener(comblistener);//添加监视器
combspeed.setFocusable(false); //取消焦点
initGame(); //初始化游戏
addKeyListener(new Listener());//添加键盘按键监视器
setFocusable(true); //将焦点设置在当前面板上 以
便通过键盘控制游戏
thiswin=this;
}
2.2.3键盘监视器
class Listener implements KeyListener {
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();//获得键码
if (key == KeyEvent.VK_LEFT && direction != 2)
direction = 0; //左
else if (key == KeyEvent.VK_UP && direction != 3)
direction = 1; //上
else if (key == KeyEvent.VK_RIGHT && direction != 0)
direction = 2; //右
else if (key == KeyEvent.VK_DOWN && direction != 1)
direction = 3; //下
}
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
}
}public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();//获得键码
if (key == KeyEvent.VK_LEFT && direction != 2)
direction = 0; //左
else if (key == KeyEvent.VK_UP && direction != 3)
direction = 1; //上
else if (key == KeyEvent.VK_RIGHT && direction != 0)
direction = 2; //右
else if (key == KeyEvent.VK_DOWN && direction != 1)
direction = 3; //下
}
剩余18页未读,继续阅读
资源评论
苦茶子12138
- 粉丝: 1w+
- 资源: 6万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Java的朱氏集团客户关系管理系统设计源码
- 基于C++的作业提交与批改系统设计源码
- 基于Vue2的移动端电影资讯网站设计源码
- 高分课程设计作业-基于QT的模仿宝石迷阵游戏C++源码+文档说明+界面截图
- 基于Apache Spark的Spark DistCP重实现设计源码
- 粤港澳大湾区(黄埔)算法算例大赛-工业表面缺陷检测源码+超详细注释
- 在 KolektorSDD 数据上使用分割决策网络进行表面缺陷检测python源码+文档说明
- 操作系统作业:时间片轮转算法的模拟实现C++源码+文档说明
- 基于改进yolov5的金属曲面缺陷检测,使用pyqt5实习了实时视频检测的功能python源码+文档说明
- 基于Qt及OpenCv设计了一个视觉检测系统,实现了米粒的计数、缺陷分析功能+源码+文档说明+效果图
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功