合作迷宫游戏


DOIT SUPER
转载
发布时间: 2025-06-14 16:06:44 | 阅读数 0收藏数 0评论数 0
封面
对于我们的项目,我们希望在两个玩家之间创造一种协作体验,其中一个玩家的命令会引导另一个玩家的行动。在我们的互动游戏中,一个玩家将在不知道目标的情况下完成任务。另一个玩家将发出命令来完成任务,但无法控制游戏。两个玩家必须共同努力,在短时间内完成尽可能多的任务。

准备工作:

材料:

所需软件

  1. P5JS 环境
  2. Arduino 环境
  3. p5.串行控制
  4. 所需硬件
  5. 请参阅附件 PDF 了解数量、链接和定价
  6. NeoPixel 卷
  7. 胶合板
  8. 街机按钮
  9. Arduino Nano 每一个
  10. 实心芯线包
  11. 面包板
  12. 15 英尺 USB 转 MicroUSB
  13. 焊锡卷
  14. 热熔胶包
  15. 命令条
  16. 电阻组
  17. 热缩管
  18. 压克力板
  19. 管道胶带
  20. 打印纸
  21. 木胶
  22. 亚麻籽油

工具:

1.烙铁套装

2.斜口钳

3.热熔胶枪

4.激光切割机

1

制作说明

互动系统需要至少两方循环聆听、思考和交流。对于我们的游戏,用户将面临挑战,需要沉浸在互动系统中,与另一个人和物体一起体验这一过程。这反映了大学课堂之外的工作方式。无论是研究还是行业,合作完成目标对于解决问题和取得新发现至关重要。从本质上讲,我们的游戏将是一个让用户体验合作重要性的平台。


我们决定制作一款名为“Get Lost”的游戏。这是一款协作迷宫游戏,其中有一名物理用户和一名计算机用户。物理用户只能看到玩家和目标位置,而计算机用户只能看到迷宫墙壁。两个用户的信息都不完整,必须共同努力将他们的玩家图标移动到目标区域。我们通过为物理用户创建大型墙壁控制器和为计算机用户创建 p5js 游戏来创建这种体验。墙壁控制器将有 4 个方向输入(按钮)供物理用户交互,以及一个 NeoPixel 网格来提供反馈。


首先,我们制作了一个纸板游戏原型,因为它需要进行大量的游戏测试。虽然本 Instructable 中的步骤将概述如何创建最终项目,但大部分游戏设计、逻辑和制作想法都来自我们的原型。我们使用一个由 4 个街机按钮和一个 Arduino Nano Every 组成的简单电路开始制作原型。一旦我们确认按钮可以向 Arduino 发送数字信号,我们就开始梳理游戏的 NeoPixel 逻辑。虽然我们当时没有 NeoPixels,但逻辑受到以下事实的极大影响:我们的“网格”本质上是一条长数字线,重新排列成网格的样子。因此,X 和 Y 坐标的概念不复存在,每个位置都可以用一个数字表示。这改变了在 4 个方向上移动的含义以及迷宫边界的含义。


在弄清楚 NeoPixel 逻辑后,我们设计了 5 个迷宫,每个迷宫都有固定的墙壁配置、玩家起始位置和目标区域位置。一对玩家将连续完成 5 个迷宫,如果他们在时间耗尽之前完成,游戏将提示玩家在指挥官(计算机用户)和驾驶员(物理用户)之间切换。


在代码方面,大部分游戏逻辑发生在 Arduino 端,而 P5JS 端主要打印出迷宫和统计数据,例如时间和达到的目标数量。通过串行通信,使用街机按钮到达目标区域将改变 P5JS 上的迷宫。创建原型后,我们继续执行以下步骤来创建最终项目。


PDF
Prototype+Plans.pdf
304.86KB
PDF
Short+Prototype+Presentation.pdf
1.68MB
2

焊接 NeoPixel 网格

我们从 NeoPixel 卷上剪下 8 条 NeoPixel,每条有 8 个 NeoPixel。我们必须将电线焊接到它们上面,所以我们剪了 24 段每段 10 英寸的实心电线。这很有帮助,因为有三种不同颜色的电线,每种颜色剪了八段。颜色让我们可以跟踪接地、引脚和电源,从而确保 NeoPixel 的方向一致。本质上,我们焊接了一条非常长的 NeoPixel 条,电线允许我们将条带弯曲成网格。焊接完每个条带后,我们用热胶覆盖连接处以加固它们。将 NeoPixel 条弯曲成 8 x 8 网格后,我们用激光切割了一张带有每个 NeoPixel 孔的丙烯酸板。然后,我们用胶带将网格固定在丙烯酸板上。

3

构建物理电路

我们为物理控制器构建了电路,如上图所示。对于每个街机按钮,我们必须焊接 2 根 20 英寸长的电线。然后,我们用热缩管固定连接。这个Arduino Nano Every Diagram对于确定要使用哪些引脚非常有用。


以下分别是准备好的街机按钮放大的电路缩小的电路的图像。


4

应用代码

对于初次使用的用户,设置代码将需要 P5JS、Arduino 环境和p5.serialcontrol。我们游戏的代码位于这个 Github 存储库中。您需要做的第一件事就是将您的 Arduino Nano Every 插入您的计算机并将 Arduino 代码上传到其中。只需将代码从Maze-Object.ino复制并粘贴到您的 Arduino 环境中即可。编译和上传后,您就可以使用 p5.serialcontrol 了。接下来,您需要打开 p5.serialcontrol 并打开您的串行端口。端口名称对 P5JS 很重要。为了防止 Arduino 访问串行监视器,您可以关闭您的 Arduino 环境。虽然 P5JS 的主要代码位于 Github 存储库中,但您需要包含多个文件。打开这个 P5JS 草图要容易得多。您需要找到行 serial.open('[portName]')。将端口名称更改为您自己的名称,然后就可以运行草图了。要将游戏设置为全屏,只需单击草图窗口即可。在制作外壳之前,请务必测试电路是否正常工作。

5

建造围栏

对于我们的物理控制器,我们使用MakerCase设计了一个带有手指槽的 22 x 16 x 4 英寸外壳。然后,我们从该网站下载了盒子计划的 SVG,并在 Adob​​e Illustrator 中对其进行了修改。这些修改包括街机按钮的孔和箭头蚀刻、NeoPixel Grid 的开口和蚀刻标签以及 15 英尺 USB 转 MicroUSB 电缆的孔。外壳计划完成后,我们用激光切割零件,并使用木胶将它们组装到我们的物理控制器中。

AI
FLNQQMKLBF3B33T.ai
1.14MB
AI
F3H2SVOLBF3B327.ai
1.16MB
AI
F5MDL2VLBF3B49X.ai
1.14MB
PDF
Physical+Controller+Sketch+(1).pdf
104.28KB
6

组装

为了让我们的控制器看起来更完美,我们打磨了表面并涂上了亚麻籽油。然后我们安装了面包板、街机按钮和 NeoPixel 网格。面包板必须用命令条固定在外壳内部。对于街机按钮,需要将它们拆开,拧入每个孔中,然后重新组装。对于 NeoPixel 网格,我们使用胶带将其固定到与标签对齐的位置。我们还用激光切割、蚀刻和打磨了一块丙烯酸板,以散射 NeoPixels 发出的光线。该板的尺寸与 NeoPixel 网格开口相同,位于网格顶部。我们在网格和丙烯酸板之间贴了胶带纸,以增加散射效果。

7

玩游戏

演示视频链接:https://youtu.be/hhjioAKQUo8

完成物理控制器和代码后,游戏就完成了。如果您自己制作了这款游戏,则可以按照步骤 3 中的说明开始游戏。设置好游戏后,您需要一个伙伴来充分体验“Get Lost”。你们中的一个人将担任驾驶员。您的工作是按下物理控制器上的按钮,将您的玩家图标移动到目标。玩家图标是 NeoPixel 网格上的蓝灯;目标是绿灯。您的搭档将是指挥官。他们的工作是查看迷宫并引导您穿过迷宫墙壁。您认为您的搭档可以达到多少个目标?

阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载
pdf下载 举报