Java简单实现贪吃蛇经典小游戏(附源代码)
77 人赞同了该文章
在我们学习java的时候,为了提高我们的兴趣,我们经常会使用所学到的知识去做一些小游戏,这篇blog就介绍了一个经典而且好理解的小游戏-贪吃蛇。
一、使用知识
- Jframe
- GUI
- 双向链表
- 线程
二、使用工具
- IntelliJ IDEA
- jdk 1.8
三、开发过程
3.1素材准备
首先在开发之前应该准备一些素材,已备用,我主要找了一个图片以及一段优雅的音乐。
3.2 开发过程
3.2.1 创建项目
- 首先进入idea首页 open一个你想放项目的文件夹
- 进入之后右键文件名 new 一个新的Directory——Snake
- 把准备好的素材复制到文件中
- 继续创建目录 src/Sanke
- 选中src Mark Directory as — Souces 把src添加为根目录
3.2.2 页面设计
- 创建java Class 文件 Snake - new - java class SnakeName 接下来的时候会对这个SnakeName.java里面的代码不停完善
首先设置窗口格式
package Sanke;
import javax.swing.*;
/**
* @author Swyee
**/
public class SnakeGame extends JFrame {
SnakeGame(){
this.setBounds(100, 50, 700, 500);//设置窗口大小
this.setLayout(null);//更改layout 以便添加组件
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭窗口的状态
this.setResizable(false);//窗口不可以改变大小
this.setVisible(true);//设置焦点状态为true
}
public static void main(String[] args) {
new SnakeGame();
}
}
- 继续创建新的文件 SnakeGrid
package Sanke;
import java.awt.*;
/**
* @author Swyee
**/
public class SnakeGrid extends Panel {
SnakeGrid(){
this.setBounds(0, 0, 700, 400);
this.setBackground(Color.black);设置背景颜色
}
}
- 将页面引用到SnakeGame.java中
package Sanke;
import javax.swing.*;
/**
* @author Swyee
**/
public class SnakeGame extends JFrame {
SnakeGrid snakeGrid= new SnakeGrid();
SnakeGame(){
this.setBounds(100, 50, 700, 500);//设置窗口大小
this.setLayout(null);//更改layout 以便添加组件
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭窗口的状态
this.setResizable(false);//窗口不可以改变大小
this.add(snakeGrid);
this.setVisible(true);//设置焦点状态为true
}
public static void main(String[] args) {
new SnakeGame();
}
}
运行样式
- 设置背景图片 背景音乐
在SnakeGrid.java中增加Music方法 设置画笔 绘图
package Sanke;
import java.applet.Applet;
import java.applet.AudioClip;
import java.awt.*;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
/**
* @author Swyee
**/
public class SnakeGrid extends JPanel {
ImageIcon image = new ImageIcon("Snake/sky.jpg");//图片文件地址
File f= new File("Snake/music.wav");//音乐文件地址
SnakeGrid(){
this.setBounds(0, 0, 700, 400);
this.setBackground(Color.black);
}
/**
* 设置画笔
* @param g
*/
@