如何使用Python在Minecraft中创建金字塔

0

Raspberry Pi上的Minecraft的妙处在于,您可以编写Python脚本来操纵游戏世界。这开辟了很多创造性的可能性。它也可以使Python对刚起步的程序员更具吸引力。

在本教程中,我想解释如何使用Minecraft创建金字塔。

这是一个10层金字塔的示例,上面有一个方块:

Pi上的Minecraft金字塔

通过创建Python函数来创建金字塔,我们可以轻松地在特定位置创建一组大小不同的金字塔。我的目标是创造著名的 吉萨金字塔 无需使用单个奴隶或单个古代外星人技术。

设置

要使用以下脚本,您需要安装Minecraft和Python API。在最新的Raspbian图像中,Minecraft和API已经设置好,因此您可以直接进入有趣的地方。

金字塔构建器功能

这是我用来构建金字塔的Python函数:

def CreatePyramid(posx,posy,posz,width,mybase,mywalls,mytopblock):
  # Function to create a pyramid at x,y,z
  # with specified width using the specified
  # block materials for the base, walls and top.

  mc.postToChat("About to create pyramid!")

  # May sure width is odd number so pyramid ends
  # with a single block
  if width%2==0:
    width=width+1

  height = (width+1)/2
  halfsize = int(math.floor(width/2))

  print "Player : {} {} {}".format(posx,posy,posz)
  print "Size : {} Height : {} Halfsize : {}".format(width,height,halfsize)

  # Create base for pyramid
  print "Create solid base"
  mc.setBlocks(posx-halfsize-2,posy-2,posz-halfsize-2,posx+halfsize+2,posy-2,posz+halfsize+2,DIRT)
  mc.setBlocks(posx-halfsize-2,posy-1,posz-halfsize-2,posx+halfsize+2,posy-1,posz+halfsize+2,mybase)      

  # Create solid Pyramid
  print "Create Pyramid"
  for y in range(posy,posy+height):
    mc.setBlocks(posx-halfsize,y,posz-halfsize,posx+halfsize,y,posz+halfsize,mywalls)
    halfsize = halfsize-1

  # Change top block
  print "Set top block"
  mc.setBlock(posx,posy+height-1,posz,mytopblock)  

  print "Position player on top"
  mc.player.setPos(posx,posy+height,posz)

CreatePyramid函数带有一些参数。这些是 :

  • 位置(posx,posy,posz)
  • 宽度(以块为单位)
  • 材质(mybase,mywalls,mytopblock)

完整的示例脚本可以使用以下命令直接下载到您的Pi:

wget //bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/minecraft/pyramids.py

剧本 :

  • 导入Minecraft API库
  • 定义“CreatePyramid” function
  • 多次调用该函数以创建一组不同大小的金字塔

在Minecraft运行时,您可以使用以下命令在终端窗口中执行Python脚本:

 Python  pyramids.py

脚本不’可能需要很长时间才能完成,但Minecraft可能需要30-60秒才能更新。结果如下:

Pi上的Minecraft金字塔

一旦您’建立了金字塔综合体后,您可以考虑如何对其进行修改。有足够的空间来雕刻门口和建立秘密通道!

Pi上的Minecraft金字塔

我放弃了对Giza建筑群的精确重新创建,因为有了Minecraft Pi版本上的绘制距离,您就可以’在不使金字塔很小的情况下,完全适合所有情况。

Pi上的Minecraft金字塔

在我的剧本中,金字塔的顶部是一块金。您可以将其或金字塔的基础和墙块更改为另一种类型。看看我的 《我的世界》方块ID参考 for ideas.

Pi上的Minecraft金字塔
通过更改传递给“CreatePyramid”您可以在脚本末尾使用功能来更改金字塔的大小和位置。通过添加或删除对该函数的调用,您可以调整构建的数量。

接下来是什么

一旦您可以构建金字塔,就可以将一个对象随机地隐藏起来,并查看找到它需要多长时间。也许您可以调整功能以在金字塔下自动添加一些隧道并建立秘密网络?

分享。

发表评论

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.