【Java GUI 编程】实现贪吃蛇游戏

之前学习了GUI 中的 AWT 中(组件,容器,面板,事件监听,文本框监听,画图类,鼠标监听,键盘监听,窗口监听)本章是写一个练手的小项目,贪吃蛇
摘要由CSDN通过智能技术生成

一、前言

之前学习 GUI 编程,主要总结了 AWT 中(组件,容器,面板,事件监听,文本框监听,画图类,鼠标监听,键盘监听,窗口监听) 还有 Swing (容器,面板,label ,按钮,列表,文本框等)所以综合以上知识,写一个练手的小项目,贪吃蛇

二、游戏效果

在这里插入图片描述

三、问题解析

1、怎么使小蛇动起来?

我们首先定义好射的属性:长度,x 坐标,y 坐标,以及蛇头方向
在这里插入图片描述

通过判断蛇头方向,然后画在(x0,y0) 的坐标
在这里插入图片描述

当然此时蛇依然不会动,通过循环把前一个坐标复制给后一个坐标,然后不断重绘,我们就可以看到一个动态的画面了
在这里插入图片描述
蛇头可以根据方向来进行赋值

在这里插入图片描述

2、小蛇如何转弯?

转弯是通过改变蛇头的属性 fx,当 fx 为 R 的时候,表示向右,L :左

那要怎么改变呢?

需要进行键盘监听,当按下 ‘左方向键’ 的时候,把 fx 设为 L,当按下 '右方向键‘ 的时候, 把 fx 设置为 L ,其余类似

在这里插入图片描述

失败判定,判断头部和身体是否有重叠,如果有的话,则返回 false

在这里插入图片描述

四、奉上源码

加载资源类

package JavaGUI.snake;
import javax.swing.*;
import java.net.URL;

/**
 * @Title:
 * @Package
 * @Description:
 * @author: maze
 * @date 2020/10/21上午 9:12
 */
public class Data {
   
    // 加载当前目录下的 static 文件夹功能的 header.png 图片
    public static URL headerURL = Data.class.getResource("static/header.png");
    public static ImageIcon header = new ImageIcon(headerURL);

    // 头的四个方向
    public static URL upURL = Data.class.getResource("static/up.png");
    public static URL downURL = Data.class.getResource("static/down.png");
    public static URL leftURL = Data.class.getResource("static/left.png");
    public static URL rightURL = Data.class.getResource("static/right.png");
    public static ImageIcon up = new ImageIcon(upURL);
    public static ImageIcon down = new ImageIcon(downURL);
    public static ImageIcon left = new ImageIcon(leftURL);
    public static ImageIcon right = new ImageIcon(rightURL);

    //身体
    public static URL bodyURL = Data.class.getResource("static/body.png");
    public static ImageIcon body = new ImageIcon(bodyURL);
    // 食物
    public static URL foodURL = Data.class.getResource("static/food.png");
    public static ImageIcon food = new ImageIcon(foodURL);
}

游戏界面类

package JavaGUI.snake;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿的温柔香

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值