2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 隐藏窗口 java swing_Java简单实现贪吃蛇经典小游戏(附源代码)

隐藏窗口 java swing_Java简单实现贪吃蛇经典小游戏(附源代码)

时间:2020-02-14 05:21:21

相关推荐

隐藏窗口 java swing_Java简单实现贪吃蛇经典小游戏(附源代码)

在我们学习java的时候,为了提高我们的兴趣,我们经常会使用所学到的知识去做一些小游戏,这篇blog就介绍了一个经典而且好理解的小游戏-贪吃蛇。

一、使用知识

JframeGUI双向链表线程

二、使用工具

IntelliJ IDEAjdk 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

继续创建新的文件 SnakeGrid

package

将页面引用到SnakeGame.java中

package

运行样式

设置背景图片 背景音乐

在SnakeGrid.java中增加Music方法 设置画笔 绘图

package

在SnakeName中调用

package

呈现

3.23 画蛇

蛇的身体将会有双向链表组成,双向链表能记录一个节点的上一个节点和下一个节点。蛇的移动其实就是节点的变化,从而达到一种移动的视觉。

新建java Snake 创建节点

package

画蛇

在snake里面增加draw()方法

/*

在SnakeGrid.java中创建蛇

Snake

并在paint中调用snake.draw(g);

/**

控制蛇的移动

在snake中增加键盘调用的方法:

/*

增加头部的方法

/*

删除尾部的方法

/*

增加move的方法

/*

在SnakeGrid中创建一个线程类,用来执行蛇的移动方法

class

print方法中调用remove 在SnakeGrid()创建键盘监听事件:

package

执行main方法可以看到可以通过键盘进行控制移动了

3.24创建蛇的食物

增加食物的实例 以及画食物的方法 反映食物坐标的方法 新建Food.java

package

修改Snake.java 增加判断蛇头位置的方法,修改午无参构造方法,改为有参构造,把food添加进来 修改move方法

package

在修改snakegrid.java 贪吃蛇的功能就基本实现了

Food

@Override

3.2.5增加蛇的存活状态

在Snake中增加蛇的存活状态,每一次移动都判断下是否存活,修改SnakeGrid的线程,执行时进行判断是否存活

public

public

class

3.2.6 增加按钮

最后的时候,给这个小游戏增加几个按钮,用来实现暂停开始

新建Button.java

package

再修改SnakeGrid中的thread

package

在主页面中把按钮添加上去

package

到这里这个小游戏就全部做完了,当然也可以在其基础上增加其他功能

也可以把这个小游戏打成jar包的形式进行运行,将打好的jar包和资源文件放在同一个目录下,即可正常运行访问

四、打jar包

idea打jar包方式命令行运行jar包方式

源码

最后附上源码链接:

链接: /s/1iUmSUnvpi_YKUNsPs3ugIQ

提取码: zxsk

作者:swyee

链接:/qq_44433261/article/details/107598788?utm_medium=distribute.pc_feed.none-task-blog-personrec_tag-8.nonecase&depth_1-utm_source=distribute.pc_feed.none-task-blog-personrec_tag-8.nonecase&request_id=5f28e5fb8c9fb674c6722510

来源:CSDN博客

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。