当前位置:首页>python>在 Minecraft 里学 Python,第一课就上瘾!

在 Minecraft 里学 Python,第一课就上瘾!

  • 2026-09-08 18:21:47
在 Minecraft 里学 Python,第一课就上瘾!

✦

当玩游戏变成写代码,枯燥是什么?

想象一下:

你在 Minecraft 里随手放一个方块,现实中 Python 程序就能检测到你的坐标。你走在矿道里挖矿,突然发现钻石——程序自动把你传送回家,还顺手在家里放了一块钻石纪念品。

这不是科幻,是 Python + Minecraft 的组合能做到的事。

今天这篇文章,手把手带你搭建环境,5 分钟写出第一个可运行的代码。

✦

第一步:安装 Forge — 打开 Minecraft 的「开发者模式」

别被这个名字吓到,其实就三步。

1.1 下载 Forge 1.12.2

Forge 是 Minecraft 的「模组加载器」,相当于给游戏开一个接口,让外部程序能和它对话。

访问这个地址下载:

https://mcarchive.net/mods/minecraftforge?gvsn=1.12.2 

找到 14.23.5.2854 版本,点击 Installer 下载。

1.2 安装 Forge

双击下载的 .jar 文件,选择 Install client → 确定。

安装完成后,打开 Minecraft 启动器,你会看到新增了一个版本 1.12.2-Forge。

1.3 验证安装

用 1.12.2-Forge 版本进入游戏,点击 Mods,如果能看到 Forge 的信息,说明安装成功。

✦

第二步:安装 Raspberry Jam Mod — Python 的「桥梁」

这个 Mod 负责接收 Python 程序发来的指令,相当于 Minecraft 里的「翻译官」。

2.1 下载 Mod

从 GitCode 克隆源码:

git clone https://gitcode.net/gh_mirrors/ra/raspberryjammod.git cd raspberryjammod unzip mods.zip "1.12.2/RaspberryJamMod.jar"

2.2 安装 Mod

把下载的 RaspberryJamMod.jar 移动到正确目录:

mkdir -p ~/Library/Application\ Support/minecraft/mods/ mv RaspberryJamMod.jar ~/Library/Application\ Support/minecraft/mods/ 

2.3 验证 Mod

再次用 Forge 版本进入游戏,进入世界后打开 Mods 页面,找到 Raspberry Jam Mod。

如果状态是 Available,说明 Mod 加载成功了!

注意:默认端口是 4711,不是常见的 25565,这个数字后面会用到。

✦

第三步:安装 Python 库

mcpi 是专门给 Minecraft Pi Edition(树莓派版)设计的 Python 库,现在我们用 Raspberry Jam Mod 模拟这个 API。

pip install mcpi 

一行命令搞定。

✦

第四步:写出第一个程序!

现在让我们写一个简单的测试脚本,看看 Python 能不能「控制」Minecraft。

python import mcpi.minecraft as minecraft

连接游戏,端口是 4711

mc = minecraft.Minecraft.create("localhost", 4711)

获取玩家坐标

pos = mc.player.getTilePos()

在聊天框显示位置

mc.postToChat(f"当前位置: x={pos.x}, y={pos.y}, z={pos.z}")

在脚下放一个金块

mc.setBlock(pos.x, pos.y - 1, pos.z, 41) 

把这段代码保存为 mcpi_test.py,在终端运行:

python mcpi_test.py 

如果游戏里出现了一条消息,脚下多了一块金灿灿的方块——

恭喜你!你的 Python 程序成功控制了 Minecraft!

✦

实战演示:三个让你「哇」的脚本

光说不练假把式,来三个实际可用的脚本。

实战一:自动铺路 — 走路自带金砖地毯

想象你一边走路,脚下自动出现一条黄金之路。

import mcpi.minecraft as minecraft import timemc = minecraft.Minecraft.create("localhost", 4711) mc.postToChat("自动铺路开始!走路留下金块")last_pos = (0, 0, 0)while True: pos = mc.player.getTilePos() current = (pos.x, pos.y, pos.z)if current != last_pos: mc.setBlock(pos.x, pos.y - 1, pos.z, 41)  # 41 = 金块 last_pos = currenttime.sleep(0.1) 

运行后去游戏里走两步看看——脚下是不是已经铺满金砖了?

实战二:自动回家 — 一个命令瞬移回家

先设置家的位置:

import mcpi.minecraft as minecraft import osmc = minecraft.Minecraft.create("localhost", 4711)pos = mc.player.getTilePos() //获取当前位置home_file = os.path.expanduser("~/.mcpi_home") with open(home_file, "w") as f: f.write(f"{pos.x},{pos.y},{pos.z}")//保存到家文件mc.postToChat(f"家已设置! x={pos.x} y={pos.y} z={pos.z}") 

再写一个「回家」脚本:

import mcpi.minecraft as minecraft import osmc = minecraft.Minecraft.create("localhost", 4711)home_file = os.path.expanduser("~/.mcpi_home") with open(home_file, "r") as f: x, y, z = map(int, f.read().split(","))//读取家的坐标mc.player.setTilePos(x, y, z) mc.postToChat("已到家!") //瞬移回家

实战三:建造房子 — 一键生成小木屋

这个脚本能在当前位置自动「变」出一栋房子:

import mcpi.minecraft as minecraft import mcpi.block as blockmc = minecraft.Minecraft.create("localhost", 4711) pos = mc.player.getTilePos()width, height, depth = 5, 4, 5mc.setBlocks(pos.x - width//2, pos.y - 1, pos.z - depth//2, pos.x + width//2, pos.y - 1, pos.z + depth//2, block.STONE.id)  //地板mc.setBlocks(pos.x - width//2, pos.y, pos.z - depth//2, pos.x + width//2, pos.y + height, pos.z + depth//2, block.WOOD.id)  //墙壁mc.setBlocks(pos.x - width//2 + 1, pos.y, pos.z - depth//2 + 1, pos.x + width//2 - 1, pos.y + height - 1, pos.z + depth//2 - 1, block.AIR.id)  //挖空内部mc.setBlock(pos.x, pos.y, pos.z - depth//2, block.AIR.id) mc.setBlock(pos.x, pos.y + 1, pos.z - depth//2, block.AIR.id) //门口mc.setBlock(pos.x + width//2, pos.y + 2, pos.z, block.GLASS.id) mc.setBlock(pos.x - width//2, pos.y + 2, pos.z, block.GLASS.id) //窗户mc.setBlocks(pos.x - width//2, pos.y + height, pos.z - depth//2, pos.x + width//2, pos.y + height, pos.z + depth//2, block.WOOD_PLANKS.id) //屋顶mc.postToChat("房子已建成!") `

运行后回头看看——一栋 5x4x5 的小木屋拔地而起!

✦

这节课学到了什么?

Forge + Mod = 给 Minecraft 装上「控制接口」

Python 连接游戏 = 用代码「遥控」游戏世界

mc.setBlock() = 在指定坐标放置方块

mc.player.getTilePos() = 获取玩家位置

mc.player.setTilePos() = 传送玩家

✦

下节课预告

下一课我们会学习:

• 如何用代码搭建大型建筑(循环 + 函数)

• 如何监听游戏事件(比如检测玩家聊天)

• 如何批量处理方块(高性能操作)

如果你搭建环境时遇到问题,欢迎在评论区留言,我会尽量解答。

编程不是枯燥的,问题是学习的打开方式不对。

用 Minecraft 学 Python,至少——很好玩。

最新文章

随机文章