弹跳球边框故障

Bouncing Ball Border Glitch

我正在制作一个弹跳球模拟,它使用 0.98 作为重力(工作正常),但有时球会卡在墙上(顶部、底部、左侧或右侧)并且它会有0 xspeed 和正常的 yspeed(反之亦然)。我一直在尝试通过限制速度来调整它,但这似乎并不像我希望的那样有效。我目前将其设置为每次球在地板上连续 100 帧后重置。这是我在 p5.js 上的代码的 link:https://editor.p5js.org/Mavhawk64/sketches/5ks6M4wD0

因为有时候粒子离边界太远了,你反转之后,下一个tick还是在边界外,你再反转,这样就没完没了。 选项 1:

你需要能够检查并设置一些标志,当你超出盒子的边界时,你只会反转一次速度方向。一旦您再次进入框内,您应该在下次发生这种情况时重置此标志。

选项 2:

您可以区分边界,并根据击中的边界相应地设置速度。 这意味着如果你碰到顶部边界,你将 ySpeed 设置为 (-1) * abs(ySpeed) 或者,如果您触及底部边界,则将 ySepeed 设置为 abs(ySpeed)。垂直边框也一样。这样速度就不会在每个滴答声中反转。