Skip to content

物体设计-简易弹丸制作

基础插件

简易弹丸 如下图。

如果要从零开始设计 简易弹丸,需要用到下图的插件:

注意,该设计需要有物体触发的知识垫底,去看文档:** 9.物体触发 > 关于物体触发-固定区域.docx**了解 主动触发和被触发 的机理。

基础配置

具体注意示例下面的地方:

1)地图事件

需要留意 机关解谜管理层 中的发射弹丸、转向砖事件。

2)弹丸模板事件

留意 模板管理层 的弹丸事件。

3)开关触发介绍

留意 机关管理层 的重力开关、制动开关,这些是 弹丸事件触发 的基础功能。

重力开关实现 触发转向,制动开关实现 弹丸停止移动时 触发爆炸流程。

从零开始设计(DIY)

弹丸事件设计

1. 设置一个目标

作者我想设计一种弹丸事件,事件碰壁后立即爆炸的功能。

2. 结构规划/流程梳理

从发射弹丸到弹丸爆炸是一个复杂的过程,但经过深入分析,可以拆成下面的小点:

1). 弹丸要可以实时创建,并且创建后保持向前移动。2). 弹丸被阻塞移动(碰壁)后,会立即触发爆炸。3). 爆炸时,要对相应爆炸的位置,进行物体触发设置。4). 物体触发能够使得石头事件炸开,而单纯的墙壁无效。

经过逐步小点的分析,可以用到下面的插件:

1). 弹丸要可以实时创建,并且创建后保持向前移动。

事件复制器 创建。

事件转向 设置弹丸初始朝向。

2). 弹丸被阻塞移动(碰壁)后,会立即触发爆炸。

制动开关 监听弹丸移动暂停情况,暂停时 开启 独立开关A。

独立开关A开启后,执行爆炸流程。

3). 爆炸时,要对相应爆炸的位置,进行物体触发设置。

用 位置与位移 插件获取当前事件脚下的位置,给予变量。

用 制动开关 插件获取当前事件的前一格撞击位置,给予变量。

用 固定区域触发 插件,对变量位置进行触发,触发关键字为“触发传感器”。

4). 物体触发能够使得石头事件炸开,而单纯的墙壁无效。

用 固定区域触发 插件给石头事件设置被触发条件的注释,

条件关键字为“触发传感器”。

注意,你必须先掌握上述的插件的全部 功能和子功能,才能理解并对想要的功能进行组合,并实现。

3. 移动路线规划

弹丸事件这里设置为,循环向前移动。

你也可以让弹丸固定向前走30步,然后等待60帧,这样也可以触发爆炸。

这样的效果相当于限制弹丸的最大发射距离。

4. 撞击触发

这里使用制动开关设置最大暂停时间。(最好在3-6帧左右)

制动开关触发后,执行爆炸流程,播放动画,然后固定范围触发。

获取到的撞击位置是弹丸事件的前面一格,详细可见 ”8.物体 > 大家族-开关.docx”中制动开关介绍。

5. 阻塞关系

弹丸之间需要相互穿透,防止发射过于密集时,相同的弹丸相互碰撞爆炸。

另外注意,这里设置的弹丸事件,处于上方的/飞行状态,默认与人物不会发生碰撞。

所以需要开启制动开关中提供的 飞行/地面阻塞 的功能。

(你也可以让弹丸处于 与事件相同 的位置,只是这样的弹丸会被事件遮挡。)

6. 发射器设置

完成了弹丸事件后,将弹丸事件放在模板管理层。

(你最好专门画一张地图,然后该地图中存放所有 游戏中用于复制 的事件。)

然后建立发射事件,使用事件复制器复制弹丸,并设置初始的朝向。

7. 测试弹丸

完成上述步骤后,进入游戏测试。

站在发射台上能够正常发射弹丸。

弹丸接触墙壁后,查看爆炸情况。

以及设置一个传感器事件,确保弹丸主动触发的标签,能够正常触发到传感器事件。

弹丸的流程如下:发射器 > 弹丸移动 > 阻塞监听 > 爆炸指令 > 触发事件你可以在任何一个流程的基础上进行改进,比如 发射器 的过程,你可以将此流程设计成一个按钮,按下按钮,可以使玩家释放魔法并发射出弹丸(但要注意弹丸与玩家相互穿透)。

8. 其他细节补充

弹丸发射后,会留下一道烟卷的痕迹。

这个痕迹仅仅是美术装饰效果,并不具备任何物理功能效果。

用到了多层行走图粒子插件,需要注意下面的配置:

烟卷的持续时间很短,并且在弹丸出现时,

所有粒子为依次产生,而不是全部产生,

最后弹丸移动时,粒子会滞留在产生时的位置而不会跟随弹丸一并移动。

弹丸转向砖设计

1. 设置一个目标

完成弹丸事件后,由于弹丸一直向前移动,只能是单向的轨迹,局限性很大。

是否可以写一个事件,让弹丸接触后立即转向呢?答案是可以的,我们开始考虑设计一个 转向砖 事件,能让弹丸转向。

2. 结构规划/流程梳理

事件与事件接触的插件,目前只有 重力开关 能捕获。(写文档时是2.82版本)

(默认的 事件接触 并不能真的在事件接触后执行。)

因此这里考虑使用 重力开关 的子功能:“获取上一个触发重力的事件ID”,当重力开关触发后,变对那个接触的事件,进行转向处理。

如果你要找插件指令,最好使用小工具“插件信息查看器”去找,打开一个个插件来找指令特别麻烦。

3. 重力开关设置

注意,因为开关只对弹丸进行转向处理,如果是玩家或其它事件,重力开关应该过滤掉。所以这里需要给弹丸事件和开关 绑定 重力的条件钥匙和条件锁 。

弹丸激活开关后,开关让弹丸瞬间转向,达到弹丸“被反弹”的效果。

由于 开启独立开关,再关闭独立开关 的过程,前后会消耗 2帧 的时间,所以如果弹丸过于密集,那么很可能会漏掉一些弹丸无法转向。

为了规避这个问题,你可以设置发射台每次要等几帧,才能再发射。

4. 举起花盆设置

这里需要设置 转向砖 能够被玩家举起,布置到任意地方。

你也可以设计 固定在地面的砖、只能推动的砖。

5. 测试转向

完成上述内容后,发射一个弹丸测试转向情况。

你也需要操作 玩家自己或其它事件 走到砖上面,看看会不会出其它问题。

石头设计

1. 设置一个目标

弹丸能够触发事件,那么就需要一种石头事件,能被弹丸炸开。

2. 结构规划/流程梳理

从设计上看,石头事件应该只是一个简单的事件,被触发后不再作用。

但是注意,由于后期添加并绑定了各种插件加成,你很难让一个石头事件与所有插件都毫不相干。

比如:石头具有镜像、石头能压一般的重力开关、石头能堵住玩家的去路 等。

因此你必须仔细分析这些因素,并排除意想不到的问题。

虽然 石头事件 没有 弹丸事件 复杂,但是你要考虑的情况仍然很多,因为石头本身是一个事件,可以具备许多特殊属性。需要反复测试游戏才能找出来。

3. 事件设置

石头反射镜像会干扰解谜设计的思路,这里关闭它。

石头爆炸后,瓦砾最好不一样,这里加了 行走图随机帧数设置。

注意,爆炸后的瓦砾,需要将触发设置改为“事件接触”。

该设置是为了避免问题:站在某事件上,无法举起面前的花盆

4. 测试石头

完成上述测试后,使用玩家的各项能力,检查石头的各项属性。

常见问题(FAQ)

弹丸遇到地面瓦砾事件也会爆炸

问题名称弹丸遇到地面瓦砾事件也会爆炸
问题图示
问题描述1. 弹丸能够正常发射,而且能正常通过转向砖。2. 弹丸遇到其它事件会爆炸,但是遇到处于下方的瓦砾事件也会爆炸。
原理解析此问题非常常见,与单位的阻塞设置有关。主要是添加了下面的注释造成的:添加改注释的理由可以见前面章节:5. 阻塞关系 。是为了防止弹丸在上方,却够不着下方的事件而设计的。
解决方案给石头瓦砾勾选穿透即可。(你也可以给石头添加 弹丸的穿透标签)

转向砖放在某事件上,无法再举起

问题名称转向砖放在某事件上,无法再举起
问题图示
问题描述1. 放置后,转向砖 无法被举起。2. 不同朝向都无法举起,并且不能触发任何指令。3. 没有任何提示音。
原理解析举起花盆的不能生效的原因很多:1. 举起被禁止(但按键会发出错误提示音)2. 按键时,执行了其它的事件指令,而不是举起花盆。3. 花盆所处的事件页,没有举起注释。(举起的注释不能跨事件页,切换事件页后,花盆被举起功能则失效)既然 转向砖 放在了某事件上,那么极有可能是 砖 本身发生了事件页切换,从而不能被举起。后来将事件页的行走图通过修改图片标记了一下,发现的确是切换事件页了。罪魁祸首就是 转向砖 的重力开关,遇到了某事件,开启了开关。从而事件页切换,举起功能失效。
解决方案给重力开关绑定 重力钥匙和重力锁 ,排除其它事件对 转向砖事件 的干扰。提示: 多个功能纠缠在一起,很容易出现指令配置上的问题。而这些问题本不是插件本身引起的。多留意添加事件注释和其它功能之间的冲突。

站在某事件上,无法举起面前的花盆

问题名称站在某事件上,无法举起面前的花盆
问题图示
问题描述1. 其他方向能够举起花盆。2. 唯独站在瓦砾事件上,无法举起花盆。
原理解析此问题不是插件问题,而是游戏本身处理机制顺序问题。如果你站在一个事件上,你也无法与另一个事件进行对话。这是因为,脚下的事件执行的优先级最高。即使脚下事件不执行任何指令,也仍然会以脚下的“确定键”执行为准。
解决方案给将瓦砾事件切换成 “玩家接触”或者“事件接触”即可。这样就不会造成按 确定键 被抢优先权问题了。

贡献者

暂无相关贡献者

页面历史

暂无最近变更历史