如何解决pygame 中的弹跳功能
def bounce(self):
self.velocity[0] = -self.velocity[0]
self.velocity[1] = randint(-10,10)
嘿,我想重新编码这个反弹功能,但我不知道,我该怎么做?
解决方法
根据物理学,最好和最自然的结果是不改变self.velocity[1]
。假设 self.velocity[0]
在 X 轴上,self.velocity[1]
在 Y 轴上,那么如果您在 X 轴(左或右)上弹跳到任何墙壁,{{1}不应该改变,只是 X 轴上的速度应该反转。如果您想对 Y 轴上的碰撞做同样的事情,您应该做同样的事情,但使用 self.velocity[1]
而不是 self.velocity[1]
。
保持相同角度的球反弹示意图:
另一方面,如果你想要让它在随机方向反弹(这看起来不自然),你当前的功能很棒(尽管如果你使用的是pygame,你可以转换{{ 1}} 到 self.velocity[0]
对象中以使其更干净)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。