Answers:
老实说,我只是做了点检查。所以:
if (falling AND left_key_pressed AND !point_free(x-1,y))
doWallJump
您可能需要将y更改为y + sprite_width / 2(或-取决于您的坐标系),以便它检查您的精灵在中间的左侧而不是顶部(或底部)。这就是N如何执行壁跳检查(最后一段)的方式。
之后,您必须决定要让壁跳多紧。如果跳高的垂直速度在玩家再次到达同一堵墙之前超过了水平线,则您将无法从同一堵墙向上跳墙,而将逐渐回落到底部(例如在带有跳墙的马里奥游戏中) )。如果您确实允许水平线足够弱,以使玩家能够回到墙壁上,则他/她将能够向上爬墙(例如在《肉仔》中)。
没有提到的另一种方法是超级银河战士的。在该游戏中,当您靠在墙上时,如果您从该墙上移开,将播放非常短的“从墙上移开”动画。如果您在该动画过程中跳跃,则将进行墙跳跃。(超级银河战士还允许玩家使用墙跳来爬上一堵墙,但这需要一些技巧(实际上,关于超级银河战士中的壁跳的一切都需要相当的技巧...)。