程序说明

这是一个用 Java Awt 实现的贪吃蛇小游戏的完整代码

算法分析

(一)启动一个独立线程根据 direction 重绘面板实现蛇身移动效果,运行过程:

  1. 记录上次头部的坐标到 tempBody 中
  2. 根据方向修改头部坐标
  3. 重绘面板
  4. 判断头部坐标与食物坐标的关系,如果重合则蛇身增加,同时生成新的食物坐标,积分累加
  5. 判断与边缘的关系,如果重叠,则游戏结束
  6. 判断与 body 的关系,如果重叠,则说明碰到自己,游戏结束
  7. 休眠几十毫秒

(二)按键事件

  1. 方向键控制 direction ,只允许 90 度方向转换,不允许 180 度转换方向
  2. A 键控制开始游戏
  3. R 键控制重新开始游戏
  4. Esc 键控制退出游戏

(三)初始化

  1. 头部块
  2. 食物块
  3. 游戏区
  4. 积分区
  5. tempBody 初始值与头部一致

(四)移动后重绘方法

  1. 绘制背景图
  2. 绘制头部方块
  3. 回事食物方块
  4. 绘制得分
  5. 修正将 body 中的数据替换到 tempBody 除了第一个以外的数据处,得到完整的蛇身坐标
  6. 用 tempBody 修正 body 坐标数据,得到最终的数据
  7. 遍历 body 绘制蛇身方块

使用说明

创建一个 Java 工程,将 game 文件夹拷贝到 src 目录下。

执行 GameFrame 类。

用 Java 实现贪吃蛇小游戏相关推荐

  1. 简易贪吃蛇小游戏java版_用GUI实现java版贪吃蛇小游戏

    本文实例为大家分享了java版贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 项目结构 新建一个JFrame窗口,作为程序入口 public class GameStart{ public stat ...

  2. Java开发贪吃蛇小游戏

    Java开发贪吃蛇小游戏 文章目录 Java开发贪吃蛇小游戏 一.开发思路 二.具体开发过程 1.绘制静态游戏窗口 2.导入素材图标 3.绘制游戏面板 4.绘制一条静态的小蛇 5.让小蛇动起来 ①监听 ...

  3. Java实现贪吃蛇小游戏(附完整源码)

    今天我就从零开始来完成这个小游戏,完成的方式也是一步一步的添加功能这样的方式来实现. 第一步完成的功能:写一个界面 大家见到的贪吃蛇小游戏,界面肯定是少不了的.因此,第一步就是写一个小界面. 实现代码 ...

  4. JAVA版贪吃蛇小游戏

    这是一篇关于JAVA的贪吃蛇游戏,源代码的部分在下面正文中介绍,图片和音频的部分都放在百度云盘,需要的自行下载. 文章目录 开发环境 一.下载方法 二.运行效果展示 三.项目结构以及主程序入口 1.项 ...

  5. Java Swing 贪吃蛇小游戏

    静态资源参考: 注:实际上没有用到header.png. 工程目录: 源码: package snake;import javax.swing.*; import java.net.URL;/*** ...

  6. java 实现贪吃蛇小游戏

    在贪吃蛇游戏中,贪吃蛇的移动可以看作是一个先进先出的队列(从蛇尾的角度看),因此我们在C语言实现贪吃蛇小游戏一文中使用了循环链接表作为队来存储蛇身节点,在 python实现贪吃蛇小游戏一文中,使用列表 ...

  7. 初识Java之贪吃蛇小游戏

    一.绘制静态窗口 这是一个简陋的窗口 package Snake;import javax.swing.*;public class StartGames {public static void ma ...

  8. Java实现贪吃蛇小游戏

    运行效果如下: 新建Yard类 import java.awt.Color; import java.awt.Font; import java.awt.Frame; import java.awt. ...

  9. 【Java】Java实现贪吃蛇小游戏(带详细注释)

    源码 源码来源:Java swing 写的贪吃蛇代码200行 前段时间在博客上看到了这段源码,由于自己没有用Java做过小游戏,于是就copy了一下,然后在自己电脑上运行,顺便加上了注释. 代码 gr ...

最新文章

  1. 无需VR外设,普林斯顿学霸用DeepHand解放你的双手
  2. Acwing第 4 场周赛【未完结】
  3. ERROR: Could not read unit serial number!
  4. 关于 eclipse 插件JsonEditorPlugin-0.9.4安装与使用
  5. 使用jclouds在S3上分段上传
  6. mysql 数据库定时备份 增量/全备份
  7. 程序员,这600单词你知道吗?
  8. 【STM32】HAL库 STM32CubeMX教程六----定时器中断
  9. stable_partition http://www.cplusplus.com/reference/algorithm/stable_partition/
  10. FZU 1894 志愿者选拔 - 单调队列
  11. word转txt_将PDF转换成Word,一个APP就能轻松搞定!
  12. 基于Springboot的景区旅游管理系统 JAVA MySQL
  13. Python压缩解压–zipfile
  14. mysql优化方面的面试题
  15. ASIC和FPGA设计流程
  16. 图像放大算法介绍(转载)
  17. vue3.0父传子,父传孙,子传孙,孙传父,孙传子的传值
  18. 企业为什么要选择人力外包?好处与坏处
  19. Python @property 详解
  20. 可以学计算机知识的手游,玩手游还能学知识?寓教于乐的游戏可不止《大航海时代》一个...

热门文章

  1. 提高篇-深度优先搜索DFS与剪枝-《算法笔记》同步笔记总结与补充
  2. 牛客网嵌入式开发面试集合(更新中....)
  3. JeecgBoot学习
  4. 理解偏差和方差(Bias-Variance)的Tradeoff
  5. cocos studio
  6. NYoj42 一笔画问题
  7. 2022年连锁酒店行业研究报告
  8. 万圣节来了,虾皮选品早知道
  9. VSCode 配置远程登入 Remote-SSH
  10. 从营销的角度看宜家成功的秘诀