JAVA课程设计(小游戏贪吃蛇)完整源码附素材(二)
目录
JAVA课程设计(小游戏贪吃蛇)完整源码附素材(一)
JAVA课程设计(小游戏贪吃蛇)完整源码附素材(二)
JAVA课程设计(小游戏贪吃蛇)完整源码附素材(三)
前言
1. 任务描述
1.1 课程设计目的
1.2 课程设计内容和要求
2. 系统分析与设计
2.1 系统总体结构
三、源代码
总结
前言
此文章仅代表个人平时的学习知识分享,希望能帮助到大家,如果对大家有用给个点赞+加关注谢谢!(如果有问题请在评论区指出,我会给予回复)。
1. 任务描述
1.1 课程设计目的
本次课程设计是对前面学过的所有面向对象的编程思想以及编程方法的一个总结、回顾和实践。主要目的包括但不限于:
(1)综合使用各种图形用户界面设计组件,实现常见的功能,熟悉这些组件的使用方法,如选择框,下拉列表框。
1.2 课程设计内容和要求
1、设置了三种游戏难度(简单、困难和地狱)依据小蛇移动速度快慢实现。
2、设置了两种模式(穿墙模式和撞墙模式)依据是否设置边界条件实现。
4、设置了游戏失败的判断(在撞墙模式下撞墙和蛇头碰到蛇的身体)。
5、设置了图片的读入使整个游戏界面更加美观、同时设置了背景音乐。
本程序设计就是依照这些内容构建了一款简单而充满童年回忆的小游戏贪吃蛇。
2. 系统分析与设计
2.1 系统总体结构
三、源代码
package snake;import java.io.File;
import java.io.IOException;import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.FloatControl;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;
import javax.sound.sampled.UnsupportedAudioFileException;
//创建Music类继承Thread线程类,实现游戏和音乐两个线程同时进行
public class Music extends Thread {
//音乐启动、暂停变量private boolean stop=false;
//定义私有变量音乐文件名称变量private String fileName;//定义私有最终变量缓存区大小private final int EXTERNAL_BUFFER_SIZE = 524288;//重写构造方法并设置传入文件位置public Music(String wavFile) {//将传入音乐文件赋值给fileNamethis.fileName = wavFile;}
//控制音乐暂停public void stopPlaying() {stop=true;}//定义音乐运行方法runpublic void run() {//创建File对象soundFile,并打开音乐文件File soundFile = new File(fileName); //检查播放音乐的文件名是否存在if (!soundFile.exists()) {//如果不存在输出不存在音乐文件提示信息System.err.println("Wave file not found:" + fileName);return;}// 设置循环播放while (stop==false) { // 创建音频输入流对象AudioInputStream audioInputStream = null; // 调用try{}catch{}异常处理语句try {// 创建音频对象audioInputStream = AudioSystem.getAudioInputStream(soundFile);//音频文件打开异常} catch (UnsupportedAudioFileException e1) {//打印异常,并显示调用信息e1.printStackTrace();return;//输入/输出异常} catch (IOException e1) {//打印异常,并显示调用信息e1.printStackTrace();return;}// 设置音频格式AudioFormat format = audioInputStream.getFormat(); // 定义源数据线SourceDataLine auline = null; //受数据行支持的音频格式创建源数据行对象,保存源数据线信息DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);// 调用try{}catch{}异常处理语句try {//获取源数据线auline = (SourceDataLine) AudioSystem.getLine(info);//打开音频格式auline.open(format);//数据行异常} catch (LineUnavailableException e) {//打印异常,并显示调用信息e.printStackTrace();return;//通常异常类异常} catch (Exception e) {//打印异常,并显示调用信息e.printStackTrace();return;}//判断音频数据是否支持调控if (auline.isControlSupported(FloatControl.Type.PAN)) {//创建发言权控制对象pan,并请求服务获取资源(在交互协助环境中协调、控制并发使用共享资源)FloatControl pan = (FloatControl) auline.getControl(FloatControl.Type.PAN);}//源数据线开始工作auline.start();//定义音频文件所含全部字长存储变量int nBytesRead = 0;//定义缓冲区大小byte[] abData = new byte[EXTERNAL_BUFFER_SIZE];// 调用try{}catch{}异常处理语句try {//判断文件是否读取完毕while (nBytesRead != -1) {//获取音频文件所含全部字长并赋值nBytesRead = audioInputStream.read(abData, 0, abData.length);if (nBytesRead >= 0)//重写入音频auline.write(abData, 0, nBytesRead);}//输入/输出异常} catch (IOException e) {//打印异常,并显示调用信息e.printStackTrace();return;} finally {//将当前流中所有缓冲数据写入底层流,防止数据缺失auline.drain();//关闭源数据线auline.close();}}}
}
总结
JAVA课程设计(小游戏贪吃蛇)完整源码附素材(二)相关推荐
- Java经典小游戏——贪吃蛇简单实现(附源码)
文章目录 一.使用知识 二.使用工具 三.开发过程 3.1素材准备 3.2 开发过程 3.2.1 创建项目 3.2.2 页面设计 3.23 画蛇 3.24创建蛇的食物 3.2.5增加蛇的存活状态 3. ...
- Java 编写潜艇大战游戏 窗体程序 完整源码
今天为大家分享潜艇大战的开发与制作.整个系统界面漂亮,有完整源码提供,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步 开发环境 开发语言为Java,开发环境Eclipse或者IDEA都可以 ...
- Java 编写捕鱼达人游戏 窗体程序 完整源码
今天为大家分享捕鱼达人游戏的开发与制作,目前是单机版游戏,后续时间空了,会进一步完善.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步 开发环境 开发语言为J ...
- c语言课程设计之桌面日历(完整源码+注释)
为了应付c语言课程设计,挑了个简单的题目随便写了写 题目描述: 桌面日历 1) 按照输入的年份,显示这一年每月日历. 2) 按照输入的年份和月份,显示这个月的日历. 3)显示当月的日历. 日历显示形式 ...
- java web编写的在线测试(调查)系统 完整源码 附详细设计文档
今天为大家分享一个java web编写的在线测试(调查)系统,目前系统功能已经完善,后续会进一步完善.整个系统界面漂亮,有完整得源码,希望大家可以喜欢.喜欢的帮忙点赞和关注.一起编程.一起进步. 开发 ...
- java贪吃蛇课程设计报告_java贪吃蛇课程设计报告().doc
java贪吃蛇课程设计报告() <Java应用开发> 课程设计报告 题 目: JAVA小游戏 - 贪吃蛇 指导老师: 姓 名: 专 业: 班 级: 日 期: 目 录 一.系统总体设计1 ( ...
- JAVA课程设计——“小羊吃蓝莓”小游戏
JAVA课程设计--"小羊吃蓝莓"小游戏 1. 团队课程设计博客链接 http://www.cnblogs.com/HXY071/p/7061216.html 2. 个人负责模块或 ...
- 做一个简单的java小游戏--贪吃蛇
做一个简单的java小游戏–贪吃蛇 贪吃蛇游戏博客链接:(方法一样,语言不一样) c++贪吃蛇:https://blog.csdn.net/weixin_46791942/article/detail ...
- JAVA练习小游戏——贪吃蛇小游戏 PLUS版
目录 基础版本 新增内容 1.添加START开始界面 2.新增背景音乐 3.添加SCORE计分 4.新增游戏机制 代码实现 实机演示 基础版本 JAVA练习小游戏--贪吃蛇小游戏_timberman6 ...
最新文章
- 本田、大众宣布智能路口研究新进展 以安全为重点
- mysql for visual
- 如何拆分PDF,PDF拆分页面的方法
- 深度学习模型建立过程_所有深度学习都是统计模型的建立
- Java 字节和字符流的读写+Buffered
- 链接聚合是将一组物理接口_500字描述华为VLAN聚合工作原理 你看懂了吗?
- switch 的性能提升了 3 倍,我只用了这一招!
- PhpStorm 配置debug断点调试
- javascript代码
- 终于解决了!Windows 10打开SecoClient 提示网络扩展启动失败
- Ubuntu下安装JRE7
- Linux svn 命令每次都要输入密码o(╯□╰)o
- Qt环境下调用捷宇高拍仪OCX
- 推荐 :强化学习必知二要素——计算效率和样本效率
- Android-SEAndroid权限问题指南
- git cherry-pick使用总结
- 小学教师计算机校本培训材料,教师业务学习材料及校本培训材料
- Redis 12 持久化
- 哪些是linux系统版本,linux系统主要有哪些版本
- Java实现交叉表_Sql交叉表简单实现 | 学步园
热门文章
- camera360android版有全景功能吗,用软件拍摄360全景照片 安卓机也可以
- IT培训班真的有用吗?IT培训包就业是真的吗?
- Android dex修复工具,安卓热修复----手动加载dex文件到设备并执行
- 程序员生存定律-六个程序员的故事(2)
- MindSpore论坛十一月活动宣传
- 科普 | 什么是稀疏默克尔树多值证明
- 计算机基础——Windows 7操作系统
- linux texlive 卸载,[linux-018] ubuntu安装texlive 2020用xelatex编译一个简单tex示
- 【原创】解决JT2Go二次开发提示license key无效问题
- 讲述下我在EBC金融外汇平台交易的真实体验