文章目录
前言
一、任务描述
1.1 课程设计目的
1.2 课程设计内容和要求
二、系统分析与设计
2.1 系统总体结构
2.2 模块功能设计
三、源代码
总结
前言
此文章仅代表个人平时的学习知识分享,希望能帮助到大家,如果对大家有用给个点赞+加关注谢谢!(如果有问题请在评论区指出,我会给予回复)。
一、任务描述
1.1 课程设计目的
本次课程设计是对前面学过的所有面向对象的编程思想以及编程方法的一个总结、回顾和实践。主要目的包括但不限于:
(1)综合使用各种图形用户界面设计组件,实现常见的功能,熟悉这些组件的使用方法,如选择框,下拉列表框。
(2)掌握一个的界面布局管理技术。
(3)掌握通过互联网查找资料的能力。
1.2 课程设计内容和要求
根据以前小时候经常喜爱的小游戏贪吃蛇的游戏模式、游戏内容和游戏特色设计了本次的课程设计内容贪吃蛇游戏,因为本身也是一个比较简单的游戏,内容并不是非常的复杂,因此这次课程设计我们实现了贪吃蛇游戏的一些基本游戏内容:
1、设置了三种游戏难度(简单、困难和地狱)依据小蛇移动速度快慢实现。
2、设置了两种模式(穿墙模式和撞墙模式)依据是否设置边界条件实现。
3、设置游戏的吃到食物的个数计数和分数计数。
4、设置了游戏失败的判断(在撞墙模式下撞墙和蛇头碰到蛇的身体)。
5、设置了图片的读入使整个游戏界面更加美观、同时设置了背景音乐。
本程序设计就是依照这些内容构建了一款简单而充满童年回忆的小游戏贪吃蛇。
二、系统分析与设计
2.1 系统总体结构
本系统共包括3个Java源文件。
类之间的关系如图1所示。
图1 类之间的关系
2.2 模块功能设计
Java源文件及其功能如表1所示。
表1 文件清单
序号 | 文件名 | 主要功能 | 备注 |
1 | Music.java | 背景音乐 | |
2 | Snakefrm.java | 创建贪吃蛇游戏的“主窗口” | 包含main方法 |
3 | SnakePanel.java | 游戏类构建和实现游戏的各种功能 |
三、源代码
3.1 主类Snakefrm
package snake;
import javax.swing.*;
import java.awt.*;
public class Snakefrm extends JFrame {
//继承顶层框架JFrame类
public Snakefrm(){
//在主窗口添加游戏主体,实例化SnakePanel对象,自动调用构造方法
add(new SnakePanel());
//给主窗口添加标题
setTitle("贪吃蛇");
//设置床体大小
setSize(900,710);
//关闭按钮
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//获取屏幕分辨率 宽
int screen_width = Toolkit.getDefaultToolkit().getScreenSize().width;
//获取屏幕分辨率 高
int screen_height = Toolkit.getDefaultToolkit().getScreenSize().height;
//使屏幕居中
setLocation((screen_width-900),(screen_height-710));
//使窗体大小不能改变
setResizable(false);
//使窗体可见
setVisible(true);
}
public static void main(String[] args) {
//实例化Snakefrm对象,自动调用Snakefrm构造方法
new Snakefrm();
//背景音乐启动
Music audioPlayWave = new Music("bgm.wav");
// 开音乐
audioPlayWave.start();
}
}
总结
第一部分主要设计主类,大家可以根据注释理解代码。
文件链接:https://pan.xunlei.com/s/VN5FvNn_b3B9i_W878U2nddgA1 提取码:4yaj