极客秀
搜索

用Wolfram语言在树莓派上玩《我的世界》,真666~

** 1、背景 **

大家好,我是 芯板坊小编 ,最近老板买了一块树莓派3B+,交给我评测。

我拿到这个树莓派以后简直是乐疯了。玩了一个月的《我的世界》,目前已经建了一个“玛雅文明”。但是把评测的活儿给忘了,目前老板的情绪还很稳定。

趁老板还没发现以前, 我们先来聊一聊这个游戏吧。

** 2、编程环境介绍 **

虽然小编已经混迹电子界多年,但也是刚刚才学会编程。今天献丑表演一下Wolfram语言,非常感谢大家捧场。

首先,确保树莓派安装的是最新版带桌面的系统(里面自带《我的世界》),然后把《我的世界》打开。

编程使用的是树莓派上的Mathematica软件。先输入以下代码安装必要的Minecraft Link库,然后按SHIFT+RETURN。

PacletInstall["MinecraftLink"]

这个Minecraft
Link库向Wolfram语言添加了一组新的命令,用于连接树莓派上的《我的世界》游戏。打开树莓派上的Mathematica软件,加载库

<< MinecraftLink`

上面这段代码最后的点号不能省略。接着,告诉Mathematica树莓派的IP地址,因为是本地运行,所以可以用localhost代替具体的IP。

MinecraftConnect["localhost"]

让我们输入下面的代码测试一下。正常情况下,游戏里应该会收到一条信息“Hello from the Wolfram Language”

MinecraftChat["Hello from the Wolfram Language"]

3、基本的控制方法

《我的世界》使用了xyz坐标系,其中xz是水平方向,y是垂直方向。你可以通过编程方法获得它

MinecraftGetPosition[]

我们可以把角色移动到任何坐标点,甚至是上天。举个例子,我们把角色移动到50米高空可以这样写

MinecraftSetPosition[{0, 50, 0}]

刚开始游戏时,我们可以这样快读获得地面上某个点的y坐标高度

y = MinecraftGetHeight[{0, 8}]

我们可以快速地测试一下那个点有什么。可以把把前面那个y值用上,建立一个pos变量

pos = {0, y, 8}

MinecraftGetBlock[pos]

下面我们可以开始建造了。我们可以放置任何类型的块,比如木材

MinecraftSetBlock[pos, "Wood"]

可以通过名称、块号或使用实体来指定块材料。我们实验一下其他的块,比如空气

MinecraftSetBlock[pos, "Air"]

使用Wolfram语言可以做一些有趣的事情,比如在天空中写一个字母“X”

MinecraftSetBlock[pos, "GoldBlock", "X"]

默认大小是12个块,你可以设置得大一些

MinecraftSetBlock[pos, "GoldBlock", "", RasterSize → 50]

MinecraftSetBlock[pos, "Air", "", RasterSize → 50]

你可以画任何你能想象的东西,甚至是一个数学函数的图像,比如sin函数

MinecraftSetBlock[pos, "Dirt", Plot[Sin[x], {x, 0, 12}, Axes → False],
RasterSize → 18]

在游戏里,有许多3D几何图元,它们可以以多种方式组合,包括长方体、金字塔、球体,它们可以构成基本的建筑。我们可以控制相机从空中观赏我们的作品。

MinecraftSetCamera["Fixed"];

MinecraftSetCamera[{0, 25, 6}];

我们使用鼠标时用右键与这些块进行交互。鼠标左键只能放置和粉碎块,但是右键可以显示需要我们读取和处理的命令。你可以阅读它们。

MinecraftHitHistory[]

举个例子,标号MinecraftHitHistory[-1]的是最后一次点过的块的信息。我们可以提取它的位置坐标,并用MinecraftGetBlock获得这个块的类型信息。

4、结语

今天的介绍就到这里了,欢迎大家的收看,下期我们不见不散!!

** 你可能还想看 **

扫码参与活动

1.转载请保留原文链接谢谢!
2.本站所有资源文章出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。
3.本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户擦亮眼睛自行鉴别,做一个有主见和判断力的用户。
4.本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。
5.联系方式(#替换成@):pm#vimge.com

  相关内容