你是否想要创建包含复杂逻辑和触发事件的冒险?你是否希望玩家会大声惊叹“他们是怎么做到的!”?那么这就是你一直在寻找的指南!继续阅读,了解级联逻辑块、定时事件、NPC移动模拟等内容! 简介:形式逻辑与前言 施工中 * 施工中 * 施工中 形式逻辑建立在一个看似简单却极其强大的陈述之上: 如果这样,那么那样。 或者 如果p,那么q。 这被称为“如果/那么”语句,理解并运用这一概念将极大地帮助你处理ACK中存在的逻辑问题。在ACK中工作时,你将使用的许多“如果/那么”语句都基于二元操作,即开/关、显示/隐藏等,并会产生相应的结果。以下是这些理念在ACK中的一些应用示例: 如果玩家踩在此处,那么生成这个怪物。(该陈述的二元反面是:如果玩家没有踩在此处,那么不生成这个怪物。) 如果玩家扳动这个开关,那么打开这扇门。 如果这个怪物死亡,那么掉落这把钥匙。 随着多层级“如果/那么”语句的引入,情况会变得更加复杂;这类语句中,结果为真需要满足不止一个条件。其形式可以表示为: 如果满足x、y和z,那么执行p。 这类复杂的条件语句在ACK中能发挥巨大作用,为你的创作增添趣味和多样性。一个简单的例子可能是: 如果x怪物死亡,且玩家踩在此处,且y开关已被扳动,那么打开z门。继续阅读以了解这些概念的实际应用。所有提及的控制方式均针对键鼠操作。 免责声明:由于游戏在1.0版本后仍在积极开发中,本文所述所有内容均可能发生变化。 怪物连锁生成:从怪物身上生成新的怪物

怪物的用户界面面板中有一个内置选项,标签为【被击杀时】。这允许怪物作为事件的简单二元触发器。由此产生的动作无延迟,会在怪物死亡时立即触发。在你的冒险中放置两只怪物。我们将其中充当触发器的那只称为怪物A,被触发的那只称为怪物B。只需点击怪物A,然后在紫色的【事件】选项卡下,点击【被击杀时】。在这里,你可以从列表中选择一个可操作的对象或实体,或者点击【在场景中查找物品】直接点击你想要触发的对象。选择怪物B并选择【生成】。我们稍后会使用【攻击】选项,但现在先忽略它。勾选【仅触发一次】旁边的方框,然后点击【添加到列表】。


对于任何类型的延迟,我们需要在触发怪物和其触发的从属怪物之间插入一个逻辑方块。这样做的额外好处是,其他事件可以在怪物死亡时同时触发。 在冒险地图中放置一个逻辑方块,注意避开你可能想要放置其他物品的格子。点击怪物A,然后点击【被击杀时】。在右侧列表中,点击怪物B将其从列表中移除,接着点击【在场景中查找物品】。点击你刚刚放置的逻辑方块。在这种情况下,我们只希望它【触发一次】。【触发】旁边的复选框已经勾选,因为这是唯一的选项。点击【添加到列表】。

现在,当怪物A被击杀时,逻辑模块将被触发,进而启动我们接下来要添加的事件。关闭怪物A的界面,点击逻辑模块。在紫色的【事件】选项卡下,点击【触发时】。点击【在场景中查找物品】,然后点击怪物B。这将实现与之前方法相同的效果,但现在我们可以通过一个远程对象来触发其他事件,而不必完全依赖怪物A,同时还支持延迟触发。

NPC移动模拟:模拟NPC移动 NPC是静态实体,无法从一个格子移动到另一个格子。不过,通过使用逻辑块和触发器序列,你可以营造出移动的错觉。本质上,这就像是通过定格动画或翻页书来模拟移动效果。具体来说,就是排列一系列名称和外观都相同的NPC,但它们实际上是独立的实体,通过按特定方式显示和隐藏,让人感觉是同一个NPC在移动。 放置两个NPC,前后排列,并给它们取相同的名称。序列中除第一个NPC外,其他NPC在被调用前都需要隐藏。实现这一点最简单的方法是使用生成作为触发器。点击【生成】并点击【游戏开始】。点击【在场景中寻找物品】,点击你想要隐藏的NPC,然后点击【隐藏】和【添加到列表】。


在NPC旁边放置一个触发器。点击触发器,再点击事件,最后点击进入触发器。点击在场景中查找物品并点击第一个NPC。对第一个NPC点击隐藏并添加到列表,对第二个NPC点击显示并添加到列表。当玩家进入触发器时,第一个NPC会消失,第二个NPC会出现。按照这种设置进行平铺,就能让NPC移动到你想要的任何距离。在下方的示例图片中,我已经准备好一排可以移动的NPC。

事件循环:顺序切换 逻辑方块有一个非常实用的功能:它们可以相互触发。也就是说,一个逻辑方块可以连接到另一个逻辑方块作为触发器,当逻辑方块A被触发时,它会从接收者变为发送者,并触发逻辑方块B。 利用这一功能,我们可以通过两个或更多逻辑方块创建循环事件。以下示例展示了火焰效果在开启和关闭状态之间反复切换。这种方法可用于各种对象,包括大门、特效、NPC以及(部分)发光道具。 在此示例中,我们将切换火焰效果道具的开关状态。在冒险场景中放置两个逻辑方块,然后放置一个火焰效果。点击任意一个逻辑方块并选择【触发时】。点击【在场景中查找物品】并选择另一个逻辑方块。点击【触发】,不要点击【仅触发一次】,然后点击【添加到列表】。保持逻辑方块A的界面打开,再次点击【在场景中查找物品】。这次选择我们之前放置的火焰效果;点击【开启】,不要点击【仅触发一次】,然后点击【添加到列表】。 注意,我们正在用逻辑方块A触发逻辑方块B和火焰效果。现在,对逻辑方块B重复这些步骤,使其触发逻辑方块A和火焰效果。但这次,我们希望火焰效果被关闭。 现在我们只需要一个触发输入,它可以是任何能够产生信号的实体或物品。在这个示例中,我们将使用触发器。在火焰效果附近放置一个触发器。点击触发器并选择【进入触发器】。点击【在场景中查找物品】并选择【逻辑模块A】。记住,我们希望此设置循环运行,所以不要点击【触发一次】。 注意:效果默认处于开启状态,因此要通过事件开启火焰效果,我们必须先将其关闭。点击【生成】并点击【游戏开始时】。在【游戏开始时】界面中,点击【在场景中查找物品】,然后点击你的火焰效果。在界面中,点击【关闭】。由于我们希望效果循环切换其状态(开启和关闭之间切换),不要选择【触发一次】。对于我们此处设置的示例,此步骤并非必需。如果你希望通过另一个事件启动循环效果,则需要执行此步骤以隐藏效果,直到被调用。 逻辑模块时钟:基于计时器的冒险与谜题

逻辑块可以(如果设置为相互触发,则必须)设置延迟。延迟可在0.05秒到5秒之间进行调整。通过按特定延迟排列一系列逻辑块,你可以创建延迟/定时事件,这些事件仅在指定时间后才会被触发。下图展示了由14个逻辑块组成的阵列:其中12个逻辑块将计时器设置为60秒(每个5秒×12个逻辑块),接下来的一个逻辑块同样设置为5秒,然后将其添加到最后一个设置为1秒延迟的逻辑块中。最后2个逻辑块控制大门保持开启的时间。

你可以在冒险【时光神殿】中看到这项技术的实际应用。在该冒险中,玩家的任务是在规定时间结束前到达一系列“宝藏室”。在分配的时间结束后,宝藏室的大门会短暂开启(持续6秒),随后便永久关闭。

玩家与宝藏房间之间分布着一系列怪物,这些怪物与逻辑模块相连,而逻辑模块控制着中间闸门的开启。在开启与宝藏房间相连的闸门之前,必须清除宝藏房间前每个区域内的所有敌人。这为战斗增添了紧迫感,也让玩家有了明确的目标,促使他们在宝藏被封锁前快速穿越关卡。

在每个怪物密集区域的入口处都有一个触发器,当玩家进入该区域时,会启动该地图段的计时器。每个地图段最终都会迎来一场迷你 boss 战斗,当迷你 boss 及其手下被击败后,会开启三道门:两道侧门供玩家在未能进入宝藏室的情况下前往下一个地图段,还有一道门正对着宝藏室的门。如果玩家在宝藏室大门开启又关闭之前击败包括迷你 boss 在内的所有敌人,就能进入宝藏室获取宝箱。

为了让成功进入宝藏区域的玩家能够离开,在宝藏房间中央设有一个1x1的触发器。该触发器设置为当玩家离开其作用范围时触发。为防止进入房间的玩家让其他人进入,此触发器已连接至逻辑模块。

逻辑方块被触发时会执行两个动作:动作一将宝藏室的前后门同时开启1秒,动作二触发相邻的逻辑方块,该方块设置为在1.5秒后关闭两道门。这个延迟时间刚好能让玩家在门关闭前离开房间。一旦逻辑方块的延迟序列完成,就无法从外部以任何方式打开这些门。 启用/禁用触发器:受控触发 触发器是基于 proximity 的事件提示。它们可用于切换任何可操作实体的状态,包括NPC、特效,甚至其他触发器。但如果希望触发器仅在某个已连接(即使是间接连接)的事件发生后才触发,就需要先禁用该触发器。实现此目的最简单的方法是将生成点设置为在游戏开始时禁用触发器。下图展示了该技巧的简单实现方式。

左侧的触发器为触发器B,右侧的触发器为触发器A。触发器A的右侧是火焰效果,火焰效果的另一侧是生成点;玩家将穿过火焰到达该区域。右侧的触发器A与生成点相连,并设置为【游戏开始时关闭】(见下图)。

当触发器被其他实体设置为关闭状态(参见:生成)时,它不会像通常那样因玩家靠近而触发。它会处于休眠状态,直到我们让它唤醒并允许被触发。 在这里,我们希望玩家穿过触发器A而不触发它,然后进入触发器B。触发器B会触发并生成位于其另一侧的敌人——骷髅B。骷髅B绑定了一个事件,该事件设置为开启触发器A。因此,当玩家通过触发器A走出该区域时,此时触发器A处于唤醒状态,会触发其关联事件,即生成骷髅A。在下方截图中,你可以看到连接骷髅B和触发器A的线路。

下方截图显示触发器A已连接至骷髅A。当玩家首次穿过触发器A但未触发它,而是去生成并击杀骷髅B后,第二次穿过触发器A时,触发器A将被触发并生成骷髅A。

这种技巧可用于实现“返程”事件,即玩家已通过某个区域并返回中心枢纽区域时触发的事件,例如在获得锁门钥匙之后。 玩家可毫无阻碍地穿过卧室。浴室内有一个钥匙宝箱,打开宝箱时会激活卧室中浴室门外的一个触发器。当玩家打开宝箱并拿到钥匙后走出浴室,触发器便会启动,进而触发一场伏击事件,生成若干敌人。以下是展示该技巧(如上述ACK截图所示)在我测试冒险中实际应用的动图。如果你在冒险中使用了此技巧,请在评论中分享冒险名称! 远程生物激活:通过传送门召唤生物 逻辑块级联:用逻辑块触发其他逻辑块 生物波次生成:将多组生物连接到单个逻辑块




换一换 














