java贪吃蛇小游戏(详解)

首先给出代码下载地址(含素材):https://share.weiyun.com/8hkvy1Ja

目录

1.实现效果:

​​2.游戏玩法

3.需求分析

4.代码实现


1.实现效果:

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) {
			
评论 141
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值