没有合适的资源?快使用搜索试试~ 我知道了~
面向对象课程设计--java__贪吃蛇.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 35 浏览量
2021-12-29
18:20:01
上传
评论
收藏 125KB DOCX 举报
温馨提示
试读
19页
面向对象课程设计--java__贪吃蛇.docx
资源推荐
资源详情
资源评论
面向对象课程设计
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页未读,继续阅读
资源评论
进击的朱亚文
- 粉丝: 0
- 资源: 4万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- docker一键安装包
- Screenshot_20240430_144340_com.ss.android.ugc.live.jpg
- 回到山沟沟.mp3
- 基于matlab实现自适应波束形成RLS及LMS算法仿真源程序1.rar
- 基于matlab实现自己编写的基于卡尔曼滤波的利用加速度传感器的计步器,测试数据是传感器放在腰部和手臂 .rar
- 基于matlab实现阵列信号处理,波束形成.rar
- 111111111111111111
- 基于matlab实现计步器编程;对当前的计步器装置的数值算法模拟 .rar
- Mdb学习查看PW;access;mdb;pw;password;patch
- 基于matlab实现关于语音信号声源定位DOA估计所用的一些传统算法.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功