目录
1.实现效果:
2.游戏玩法
3.需求分析
4.代码实现
1.实现效果:
源码可以加微信领取哦,或者加群862461829自取
群只是作为一个学习交流的作用,还有一些资源分享
【群里还含有:Java80g学习视频+Java学习书籍+Java项目实战源码+安装软件等】
微信:

2.游戏玩法
该游戏用上下左右控制蛇的方向,寻找吃的东西,每吃一口就能得到一定的积分,而且蛇的身子会越吃越长,身子越长玩的难度就越大,不能碰墙,不能咬到自己的身体,更不能咬自己的尾巴,等到了一定的分数,就能过关,然后继续玩下一关。这次我们以一关的实现为例,关卡控制交给读者自行添加。
3.需求分析
方向控制
首先我们需要实现的是通过按键实现控制蛇的运动方向,需要注意的有两点:
1.蛇运动的时候不能向上一个状态的反方向运动,例如,原先向右,下一次改变的方向不能为左。
2.运动的时候如果按了一个方向键,再下一次按键之前将维持原先的方向运动。
2.如果蛇头和身体的图片不一样,那么蛇头要随着运动方向进行旋转。
蛇的绘制
蛇我这里分为了蛇头和蛇身两部分,当然你也可以加蛇尾。这里以蛇头和蛇身两部分为例:
蛇头游戏开始就已经存在,之后吃到一个食物都会使蛇身长度加一。蛇身的每一部分都会沿着它的前一部分的轨迹运动,而每一部分都会沿着蛇头的轨迹运动。
食物绘制
食物绘制相对比较简单,当一个食物被吃掉以后,便在地图的其他随机的一个地方产生下一个食物。
蛇和食物的生命周期
蛇:当蛇碰到地图边界,碰到自己的身体和尾巴的时候,即判定为死亡。
食物:当蛇头碰到食物,则食物死亡。
4.代码实现
项目目录

Constant类,存储一些常量。
public class Constant {
public static final int GAME_WIDTH = 1024;//窗体宽度
public static final int GAME_HEIGHT = 578;//窗体高度
public static final String IMG_PRE="com/zzk/snake/img/";//图片路径前缀
}
MyFrame类,用于加载游戏窗体和不断刷新绘制窗体内容:
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import com.zzk.snake.constant.Constant;
public class MyFrame extends Frame{
/**
* 加载窗体
*/
public void loadFrame(){
this.setTitle("贪吃蛇");//设置窗体标题
this.setSize(Constant.GAME_WIDTH, Constant.GAME_HEIGHT);//设置窗体大小
this.setBackground(Color.BLACK);//设置背景
this.setLocationRelativeTo(null);//居中
//设置可关闭
this.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//设置可见
this.setVisible(true);
//运行重绘线程
new MyThread().start();
}
/**
* 防止图片闪烁,使用双重缓存
*
* @param g
*/
Image backImg = null;
@Override
public void update(Graphics g) {
if (backImg == null) {
backImg = createImage(Constant.GAME_WIDTH, Constant.GAME_HEIGHT);
}
Graphics backg = backImg.getGraphics();
Color c = backg.getColor();
backg.setColor(Color.BLACK);
backg.fillRect(0, 0, Constant.GAME_WIDTH, Constant.GAME_HEIGHT);
backg.setColor(c);
paint(backg);
g.drawImage(backImg, 0, 0, null);
}
/**
* 这里创建一个不断重绘的线程内部类
*
* @param args
*/
&nb

本文详细介绍了如何使用Java编程实现贪吃蛇小游戏,包括游戏玩法、需求分析及代码实现。强调了方向控制和蛇的绘制逻辑,并提供了源码获取方式。游戏规则是通过控制蛇吃食物得分,避免碰撞导致游戏结束。


最低0.47元/天 解锁文章
2524

被折叠的 条评论
为什么被折叠?



