我现在正在打乒乓球,我希望球每击打 5 次就加速一次,但是当我跑动时,球只是开始向起始方向加速。
它在没有加速球的情况下运行良好,所以问题不是以前的代码。
当试图实现这一点时,我在我的 Ball 类中创建了一个变量,self.num_hits
并将其初始设置为 0。然后在我的游戏循环中,每次球碰撞时,我都会增加ball.num_hits
并反转它的 x_speed。
collide_list = pygame.sprite.spritecollide(ball, players, False)
if collide_list != []:
ball.x_speed *= -1
hit.play()
ball.num_hits += 1
在 Ball() 类中:
if self.num_hits % 5 == 0:
if self.x_speed > 0:
self.x_speed += 2
else:
self.x_speed -= 2
但这使球的速度偏离了它的起始速度,所以我检查了self.num_hits % 5
返回的内容,它总是返回 0。我一直认为0 % number = number
,所以我的问题是为什么 0 % 5 返回 0?如果我无法解决 0 % 5 的问题,还有其他方法可以让球每 5 次击球加速一次吗?