你好,我可以帮助你。

hi,正在开发一个平台游戏,并且已经实现了物理引擎(大致),但遇到了一个问题:对象穿过了方块。 有没有人能帮助我一下?

这是我的代码:

if (!place_meeting(x, y + 1, o_block))
{
    // 实现重力
    gravity = 0.1;
}
else
{
    // 停止重力
    gravity = 0;
}

这种现象通常是因为你正在在方块的下面生成重力,而没有检测出是否有方块,因此对象就掉落了。

你可以尝试使用x y检查一下是否有方块存在,如果有的话,那么就可以放慢或停止重力。

例子:

// 在每一帧都检查
if (place_meeting(x, y + 1, o_block))
{
    // 检测到有方块,停止重力
    gravity = 0;
}
else
{
    // 方块未检测到,生成重力
    gravity = 0.1;
}