用 Java 复刻了高中时在塞班上玩的「熔岩矿车」:纯 Swing、零依赖、没有一张图片,一个 jar 双击就能玩

钻得越深,矿越值钱 ------ 记得留够油回家。

⚠️ 先说清楚:这是一个 Java 程序,电脑上要先装 Java(8 或以上版本)才能玩。 怎么检查、怎么装,第三节一步步写了。

一、那台小小的矿车

不知道还有没有人记得「熔岩矿车」。

那是塞班还在的年代。手机屏幕只有巴掌大,按键是实体的,玩游戏全靠方向键和中间那颗确认键。课间十分钟、晚自习下课前那一小会儿,把手机藏在桌肚里,开着一台小矿车往地底下钻 ------ 那是我高中时最上头的游戏之一。

规则简单到一句话就能说完:往下挖矿,回地面卖钱,升级车子,再挖得更深。

可它偏偏有一个让人又爱又恨的设定:油。

越往下矿越值钱,可回去的路也越长。你看着货舱里那颗刚挖出来的红宝石,再看看见底的油表,心里开始算:再挖一块,还回得去吗?

很多次答案是回不去。矿车在半路"砰"一声炸掉,一整趟的货全没了。然后你骂一句,重新加满油,又一头扎下去。

后来塞班没了,那台手机不知道丢在了哪儿,那个游戏也再没找到过。

十几年后,我用 Java 把它重新做了出来。

二、它现在长这样

还是那个熟悉的循环:地面上有四家店 ------ 加油站、矿石收购站、改装厂、道具店。加满油,找块空地往下钻。

浅层是煤炭、铁矿、铜矿,值个十几几十块;往下是金矿、翡翠、红宝石、钻石;再往下,是欧泊、陨铁、星核。一共 27 种矿石,每一种都有自己的样子 ------ 有的会闪光,有的会冒烟,有的带着电弧。

地底最深处,一千多米的地方,藏着 6 颗「熔岩之心」,一颗卖 30000。全部挖出来卖掉,就通关。

路上还埋着 4 种宝藏:古钱罐、恐龙骨架、远古神像,还有一种......挖到你就知道了。

赚来的钱拿去改装厂,7 种部件,每种 7 档,从"出厂"一路升到"传说":

当年那种"再挖一块就回去"的纠结,我也原样留下来了,还多加了几道坎:

  • 熔岩:钻进去会烧伤,越深越疼
  • 瓦斯:长得和普通泥土一模一样,偶尔冒个小气泡,一挖就炸
  • 地热:150 米以下越深越热,越热越费油
  • 地震落石:300 米以下,头顶开始掉灰,就是碎石要下来了

燃油条上有一根白线,那是"飞回地面大约要的油"。油快掉到白线时,屏幕会闪红、报警 ------ 这是我给当年那个一次次炸在半路上的自己,补上的一点温柔。

但规矩没变:油烧光或者车身打坏,车就会爆炸。一整舱的货全丢,还要交 25% 的救援费。满了就是满了,炸了就是炸了 ------ 没有这份心疼,就不是那个游戏了。

三、怎么玩起来

⚠️ 运行环境:必须先装 Java(8 或以上版本)。 游戏本身就是一个 jar 文件,电脑上没有 Java 的话,它打不开。

第 1 步:检查电脑上有没有 Java

Windows 按 Win + R,输入 cmd 回车,在黑窗口里输入:

bash 复制代码
java -version
  • 能看到 java version "1.8.0_xxx"、openjdk version "17.x" 这类版本号 → 已经装好了,直接跳到第 3 步
  • 提示「'java' 不是内部或外部命令」→ 没装,看第 2 步

第 2 步:安装 Java(已经装了就跳过)

去 Adoptium 下载 Temurin,版本选 17 或 21 都行(8 也能跑),Windows 下载 .msi 安装包,一路下一步装完。装完重新开一个 cmd 窗口,再输一次 java -version,能看到版本号就成功了。

macOS 也是在 Adoptium 下载 .pkg 安装;Linux 用系统的包管理器装 OpenJDK 就行。

第 3 步:下载游戏

https://github.com/xiaoqiMikko/games/releases/download/v1.0/LavaDigger.jar

第 4 步:运行

在 jar 所在的文件夹打开命令行,输入:

bash 复制代码
java -jar LavaDigger.jar

Windows 上如果 .jar 已经关联了 Java,直接双击也能打开。双击没反应,或者被解压软件当成压缩包打开了,说明没关联,用上面的命令行方式启动就行。

操作按键:

按键 作用
← → (或 A D) 左右行驶
↑ (或 W) 喷气往上飞(很费油);往下掉时按住能刹车
↓ (或 S) 向下钻
贴着墙按 ← / → 横着钻
回车 (或 E) 在商店门口进店
F / R / X / T 备用油桶 / 修理包 / 炸药 / 紧急传送
Esc 暂停 / 存档 / 看说明
M / F11 静音 / 全屏

会自动存档,存在 jar 旁边的 save/lava.properties。关掉游戏,下次打开选「继续游戏」,矿车还停在你离开的地方。

四、做的时候的几个小心思

写给同样想动手做点小游戏的朋友。

1. 一张图片都没有。

整个游戏只有一个约 90KB 的 jar。矿车、四家商店、几十种矿石的贴图、土层的颜色、窗口和任务栏的图标,全部是启动时用 Java2D 一笔一笔画出来的;爆炸声、挖矿声也是用代码合成的 PCM 波形。

这么做一开始是图省事 ------ 不用找素材、不用管版权、不用操心资源路径。做到后面发现它有个意外的好处:想给矿石加个闪光、给宝藏加圈光晕,改几行代码就有了。

2. 纯 Swing,零依赖。

没有用任何游戏引擎和第三方库,只用 JDK 自带的 Swing。画面先画到一张固定 960×640 的缓冲图上,再等比缩放到窗口,所以窗口随便拉、F11 全屏都不会变形。游戏逻辑用 1/120 秒的小步长更新,高速下落时也不会穿墙。

3. 用一个"机器人玩家"来调数值。

这类游戏最难的不是写代码,是数值:升级太便宜,一小时就通关,没意思;太贵,挖到最后也凑不够钱,更没意思。

我写了一个经济模拟程序,让它按固定策略自动玩完一整局,算出通关要多少小时、全部升满要多少小时,换 8 个随机种子各跑一遍。每次改价格、改矿价、改油耗,都重跑一次。现在的节奏大概是通关 3~5 小时。

4. 存档要能"长大"。

游戏前后改了四个大版本,矿从 8 种加到 27 种,又加了宝藏。老存档不能因为更新就作废,所以存档带版本号:读到老版本存档时,自动往还没挖过的泥土里补上新矿、补上宝藏。为此定了一条死规矩 ------ 矿石的编号就是存档里的格子编码,新矿只能往后追加,不能插队。

整个项目源码 src/ 下一共 11 个文件、不到 5000 行,另外配了离屏自测:不开窗口,模拟按键把各种场景跑一遍、断言结果、把画面存成图片检查。

五、最后

写到最后一颗熔岩之心被卖掉、通关画面弹出来的那一刻,我愣了一下。

高中那会儿,我好像一直都没能通关过。

如果你也玩过塞班上的熔岩矿车,或者只是想找个能安安静静玩几个小时的小游戏,欢迎下载试试。也欢迎在评论区聊聊:你当年在塞班上玩的是哪个游戏?

源码在这里,喜欢的话点个 Star:

👉 https://github.com/xiaoqiMikko/games

钻得越深,矿越值钱。

记得留够油回家。

相关推荐
天天被压力8 分钟前
【A股分钟级高频数据完全手册 #12】股票五档盘口数据接口:买卖五档实时盘口解析
java·人工智能·python
Wang's Blog9 小时前
Java 项目实战: 交友项目 - FastDFS:入门案例
java·开发语言·交友
apcipot_rain10 小时前
C++转Java日记(03)
java·开发语言·c++
皮皮林55110 小时前
Java实现微信扫码登录
java
Yyyyyy~12 小时前
【Java】Day4Web基础知识
java·spring boot
灿飞屋14 小时前
Kotlin与Java虚拟机三:控制流
android·java·开发语言·后端·python·kotlin·安卓
NE_STOP14 小时前
Spring AI Alibaba - MCP入门
java
nice_lcj52014 小时前
【从零理解 Spring AI · 07】对话记忆:让模型记住上一句说了什么
java·spring ai·ai应用开发·chatmemory·对话记忆
SL_staff15 小时前
制造业交付崩盘?用跨部门节点协同计划打通销售、生产与质量链路
java·开源·产品
文丑颜不良啊16 小时前
LeetCode2261~2280题目解析
java·leetcode