Project1

标题: 墙壁移动机关怎么做 [打印本页]

作者: tzs    时间: 2026-1-2 15:08
标题: 墙壁移动机关怎么做
就是恐解里常见的,在一个房间里触发了机关,两侧墙壁逐渐移动过来,玩家不及时开门就会被夹死的谜题
现在的问题是,墙壁压过来的间隙玩家也需要在房间里移动操作,作为墙壁的事件移动时穿透有几率被玩家穿透上墙,全程不穿透又会被挡住
作者: HM495    时间: 2026-1-2 20:41
给墙壁画上尖刺,碰到直接死
从根上杜绝玩家交互的可能
作者: 星间漫游起重机    时间: 2026-1-3 03:00
不用移动路线,而是用设置事件位置让墙壁一顿一顿地靠近怎么样?配上音效和烟雾之类的也可以很有压迫感
作者: tzs    时间: 2026-1-3 13:17
星间漫游起重机 发表于 2026-1-3 03:00
不用移动路线,而是用设置事件位置让墙壁一顿一顿地靠近怎么样?配上音效和烟雾之类的也可以很有压迫感 ...

试了一下,玩家在设置事件位置的前一帧站墙边还是上墙了
作者: 星间漫游起重机    时间: 2026-1-3 14:41
tzs 发表于 2026-1-3 13:17
试了一下,玩家在设置事件位置的前一帧站墙边还是上墙了

一顿一顿地移动主要就是方便加额外的判断啦,在控制墙壁移动的那条里加一个分支条件,如果玩家位于接下来墙壁要去的位置,就把玩家往反方向弹一格怎么样呢?
实现方式可以试试接触触发事件(可能会让墙和玩家有瞬间重合),也可以用获取玩家在地图上的xy位置然后根据位置判定之类的
(因为本人其实没有做过类似的东西,所以只是大致提供思路,如果有不可行的地方抱歉
作者: 灯笼菜刀王    时间: 2026-1-3 15:33
本帖最后由 灯笼菜刀王 于 2026-1-3 15:35 编辑

如果房间不大的话,就用事件铺满房间, 事件分两页, 一页可通行(地板),一页不可通行(墙壁), 第二页的条件为 变量A >= N ,N的值根据墙壁推进距离依次递加

然后放一个并行处理,内容为:

等待(就是设置墙壁移动速度)
变量A += 1 (使墙壁推进1行)
然后用变量A分歧, 判断player的X,或者Y是否和打开的墙壁一致, 是的话, 强制移动player往左/右/上/下移动一格(是最一格的话就game over)

作者: tzs    时间: 2026-1-3 19:26
星间漫游起重机 发表于 2026-1-3 14:41
一顿一顿地移动主要就是方便加额外的判断啦,在控制墙壁移动的那条里加一个分支条件,如果玩家位于接下来 ...

没事,谢谢提供灵感
作者: tzs    时间: 2026-1-3 19:27
灯笼菜刀王 发表于 2026-1-3 15:33
如果房间不大的话,就用事件铺满房间, 事件分两页, 一页可通行(地板),一页不可通行(墙壁), 第二页的条件为  ...

感谢大佬
作者: tzs    时间: 2026-1-3 19:29
HM495 发表于 2026-1-2 20:41
给墙壁画上尖刺,碰到直接死
从根上杜绝玩家交互的可能

前面已经搞过一次尖刺房间了,再来一次有点重复,不过还是感谢大佬
作者: HM495    时间: 2026-1-3 23:41
本帖最后由 HM495 于 2026-1-4 00:02 编辑
tzs 发表于 2026-1-3 19:29
前面已经搞过一次尖刺房间了,再来一次有点重复,不过还是感谢大佬


不用尖刺的话,那你这个房间方案你得定好呀,
先不讨论具体如何实现,摆在面前的一个问题:

我角色就原地不动挡在正在关闭的墙面前,你准备怎么处理这种情况?
挡住了,墙不动,肯定不可能,
无视角色继续动,穿透,肯定也不对,
唯一符合逻辑的方案只有“推角色”,那么按照什么规则去推呢?

你需要的应该是先定好处理方案,再考虑怎么实现这个方案的问题

如果你墙壁的移动不是连续的,而是每隔几秒移一格
那就用一个并行处理事件周期性控制墙壁的移动,并且在移动前做个玩家坐标的检测
如果玩家在移动的下一个坐标上(比如现在墙壁X是8,角色的X是9)
那就同时给玩家跟墙壁设置向右移动一格的路线

如果墙壁要连续的位移就不建议这么搞,因为强制移动时角色不能操作,会影响正常解谜
作者: tzs    时间: 2026-1-4 01:37
HM495 发表于 2026-1-3 23:41
不用尖刺的话,那你这个房间方案你得定好呀,
先不讨论具体如何实现,摆在面前的一个问题:

现在也只能让墙壁隔几秒移动一次了,找不到墙壁连续移动还完全不出bug的方法




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1