设为首页收藏官网网盘国家资源立人课堂 今天是: 2024-04-29    美好的一天,从现在开始投稿

立人创客乐享社区

 找回密码
 立即注册
成都市金牛实验中学校
立人创客乐享社区 门户 查看主题

用 Python 来玩 Minecraft

发布者: jnschool | 发布时间: 2023-12-18 16:37| 查看数: 508| 评论数: 0|帖子模式

<

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
让我们写几段程序来运行一下,看一看这个 API 究竟能实现哪些功能?首先,导入 Minecraft API 并创建相应的对象:
[Python] 纯文本查看 复制代码
from mcpi.minecraft import Minecraft
mc = Minecraft.create()

这里,我们得到了一个 mc 对象, 任何关于玩家和建筑物的编程都是基于这个对象来进行的。游戏的世界里,玩家人物、建筑物都有其相应的坐标。我们相当于在一个3D空间中进行编程,即存在 xy z 三个参数:x 为横向坐标、y 为高度坐标(注意,不是纵向)、z 为纵向坐标:
640.jpg

我们可以通过 mc 这个对象里封装的player对象来获得当前玩家人物的位置,应用 getTilePos 函数:
[Python] 纯文本查看 复制代码
position = mc.player.getTilePos()
x = position.x
y = position.y
z = position.z
print(x, y, z)
在特定地方放置指定的物质块,我们应用mc对象的setBlock函数来实现。如放置一个cubblestone块(前3个参数是坐标 xyz,最后1个参数是物质代号,cubblestone的代号是4):
[Python] 纯文本查看 复制代码
mc.setBlock(-564, 64, 675, 4)
640 (1).jpg

放置一个 glass 块(玻璃的代号是20):
[Python] 纯文本查看 复制代码
mc.setBlock(-564, 64, 675, 20)
640 (2).jpg

放置一个cubblestone,上面再放一把火炬(torch的代号是50,注意火炬的坐标需要的 y 值要比cubblestone1,以确定让火炬在cubblestone的上方):
[Python] 纯文本查看 复制代码
mc.setBlock(-564, 64, 675, 4)
# Cubblestone
mc.setBlock(-564, 65, 675, 50)
# Torch
640 (3).jpg

下面我们应用循环语句来批量构建一些“建筑”,比如连接这块陆地和对面小岛的一座“桥”:
[Python] 纯文本查看 复制代码
for i in range(100):   
    mc.setBlock(-564+i, 64, 674, 4)  
    mc.setBlock(-564+i, 64, 675, 4)
    mc.setBlock(-564+i, 64, 676, 4)
    # Bridge
640 (4).jpg

在桥的两侧每隔5个块单位放置1把火炬:
[Python] 纯文本查看 复制代码
for i in range(100):
    mc.setBlock(-564+i, 64, 674, 4)  
    mc.setBlock(-564+i, 64, 675, 4)
    mc.setBlock(-564+i, 64, 676, 4)
    # Cubblestone

    mc.setBlock(-564+i*5, 65, 674, 50)
    mc.setBlock(-564+i*5, 65, 676, 50)
    # Torch
640 (5).jpg

640 (6).jpg
我们在桥的中间建一个“柱子”:
[Python] 纯文本查看 复制代码
for i in range(50):
    mc.setBlock(-544, 64+i, 675, 4)
    # Pillar
640 (7).jpg
在桥的上方建一个“楼梯”:
[Python] 纯文本查看 复制代码
for i in range(100):
    mc.setBlock(-564+i, 64+i, 674, 4)
    mc.setBlock(-564+i, 64+i, 675, 4)
    mc.setBlock(-564+i, 64+i, 676, 4)
     # Staircase
640 (8).jpg 640 (9).jpg 640 (10).jpg
最后我们建一个稍微复杂一点的建筑——正方形的“城堡”。首先建一个正方形的“地基”(需要嵌套另一个循环):
[Python] 纯文本查看 复制代码
for i in range(30):
    for j in range(30):
        mc.setBlock(x+i, y, z+j, 4)
        # Foundation
640 (11).jpg

构建整个城堡,带有“玻璃天窗”:
[Python] 纯文本查看 复制代码
for i in range(30):
     for j in range(30):
        mc.setBlock(x+i, y, z+j, 4)
        # Foundation

        mc.setBlock(x+i, y+j, z, 4)
        mc.setBlock(x, y+j, z+i, 4)
        mc.setBlock(x+i, y+j, z+30, 4)
        mc.setBlock(x+30, y+j, z+i, 4)
        # Walls

        mc.setBlock(x+i, y+30, z+j, 20)
        # Glass ROOF
640 (12).jpg 640 (13).jpg

1
安装与配置编程环境
2
Hello World
3
创造方块
4
畅行无阻
5
点石成金
6
寻找钻石
7
长方体与金字塔
8
小木屋
9
迷宫
640.png 640 (1).png 640 (2).png 640 (3).png 640 (4).png 640 (5).png 640 (6).png 640 (7).png

最新评论

展开
Loading...
夜深了,早点休息吧!立人创客保护学生机制启动!
开站时间 -> 07:00
关站时间 -> 23:00
快速回复 返回顶部 返回列表