为什么人物在固体砖上无法移动
gamemaker吧
全部回复
仅看楼主
level 4
想做一个iw同人,一开始下载的某引擎,打开发现不支持现版本的gm,于是打算自己重新做。
目前只做了主角kid的左右移动和基本方块,然后就遇到了标题所说的问题,kid代码如图
麻烦大佬解惑
2025年10月21日 09点10分 1
level 6
地板物体需要具体设定的吧,那个固体按钮不靠谱的。
2025年10月22日 08点10分 0
好的谢谢
2025年10月22日 22点10分
level 4
补充,砖块只设置了一个32*32的精灵,勾选了固体,没有任何代码部分
2025年10月21日 09点10分 2
吧务
level 13
这涉及到固体(solid)对于碰撞事件的特殊响应。实例在自移动(重力/阻力影响速度,速度影响坐标)的时候,如果与一个存在碰撞关系的固体实例发生了碰撞,则会回到一个不会碰撞的位置。由于步循环里自移动和碰撞事件是相邻的,目前本人尚未对于这个“回到”的具体机制做出更严格的测试。不过从代码来看,你的水平移动是通过赋予hspeed实现的,竖直方向则是靠gravity,二者会在计算时合并成一个斜方向的速度。如果玩家正好站在ObjBlock这个solid物体的上表面,那确实是无法移动的。//仅做推断,本人不使用solid,未实测。
固体 / XY方向均使用速度或加速度进行控制,这两者存在一定冲突,考虑更换其中一边(或两边)的做法可以避免这一结果。
说起来,好像最近才在另一个帖子里和3楼的@魔導紳士 提过操作速度和操作坐标可能出现的不同结果,这可以算一个例子。
2025年10月23日 07点10分 4
@贴吧用户_aZNA2aQ 固体也许在一些框架里挺好用的,但就是那个“以咱现有手段没办法解析清楚”的部分,碰到“横版的移动设计这种”比较复杂的场景时,咱还是选择不使用,这样就能规避很多预期外的框架调整。
2025年10月23日 08点10分
原来如此。 既然不用固体也没有什么问题的话我就放心用不使用固体的方案了。 感激不尽!
2025年10月23日 07点10分
@q糖豆p 好的[太开心]
2025年10月23日 08点10分
我的动作游戏里面,有个和gravity作用类似的竖直加速度变量。一般碰到地板物件时要特别把这个值调0,然后跳跃时变成0.4。同时地板物体要把角色弹到相邻位置。
2025年10月27日 04点10分
level 13
你跟block的碰撞都没进行处理当然卡了,原引擎多看看再自己写吧
2025年11月05日 02点11分 5
并非,原引擎处理了也一样走不动 把固体勾点掉换自己的实现就没问题了
2025年11月05日 02点11分
@贴吧用户_aZNA2aQ 我所说的“不支持现版本gm”一大部分原因是人物粘在地板上,另一大部分是其他的一堆小问题
2025年11月05日 03点11分
level 7
其实是有gms2的引擎的,如果你不想自己研究了的话可以尝试一下
2026年04月05日 03点04分 6
1