MockMechanics沙盒建造游戏

联合创作 · 2023-09-28 00:03

MockMechanics 是一个沙盒建造游戏,同时也是一项机械/可视化编程语言。MockMechanics 仅使用简单的块和图形,以及直观的编程形式来创建复杂的交互式机制,这跟《我的世界》有点类似。

MockMechanics 具备真实的物理引擎,可以使用 MockMechanics 制作一些非常有趣的东西,包括可演奏的乐器、机械的原型、算法的视觉表示、游戏和许多其他东西。比如下图是一个在 MockMechanics 创建的俄罗斯方块游戏。

MockMechanics 使用 clojure 编写,因此除了直接拖动块的可视化编程,也可以选择使用 clojure 作为脚本语言,来控制作品的行为。比如可以构建一个机器人手臂(很容易,有点像搭乐高),然后使用 clojure 让它拾取物体。

构建说明:

  • 树形结构:所有机器都是零件的 3d 树形结构,因此每个零件都有一个父级。可以先将一个零件添加到地面,然后将零件添加到该零件,依此类推以创建您想要的结构。当你移动一个部件时,它的所有孩子都会随之移动。
  • 模式:该程序有不同的模式(在右侧按钮栏上选择),每个视图有相同的 3d 环境,但允许您以不同的方式与之交互,例如添加模式允许添加对象,编辑模式允许缩放和移动。
  • 值:每个部分都有一个与之关联的值,该值的含义取决于是哪个部分。轨迹值表示它从 0 到 1 的旋转,1 为 360 度。 wagon 值是距其所在轨道路径上的起点的距离,按钮(和块)值在按下时为 1,否则为 0。灯值在打开时为 1,在关闭时为 0。您可以通过将其值设置为 1 来运行芯片,或者播放扬声器的声音。探针在接触另一个探针时的值为 1,否则为 0。
  • 行为:要使事物移动(或按下按钮、灯等),请将其添加到图形芯片部件并运行图形。该图在 x 轴上具有时间(以秒为单位),即水平轴和 y 轴上的值。例如,一个轨道从 (0,0) 到 (1,1) 的图形函数在运行时会在 1 秒内将该轨道旋转 360 度。
  • 决策:要将一个部件的行为与另一个部件的行为联系起来(比如按下按钮时运行图表),需要使用主板部件来连接这些部件的值。可以使用逻辑门使输出成为输入的任何函数。当调用主板时(当其中一个触发输入发生变化时),它会计算并将其输出的值设置为零或一。例如,假设您将按钮引脚直接连接到灯并将按钮设置为触发器(默认情况下)。当您按下按钮时,灯会亮起,当您松开时,灯会熄灭。按钮按下和释放运行主板(因为按钮是触发器)并且由于灯连接到按钮,它的值变为与按钮相同,1(按下按钮,灯亮)或0(按钮释放,灯)离开)。或者您可以使用探针来检查世界上的情况,例如,当按下按钮并且该块靠近该块时,则运行该芯片。
  • 设置:可以通过修改根目录中的 settings.clj 文件来设置一些首选项。
浏览 7
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑
举报