乒乓球弹跳到墙壁和球拍上

时间:2019-10-22 19:56:59

标签: python pygame pong

大家好,我是python的新手,尝试检测墙壁(屏幕的边缘)并使当我的球撞到墙壁时弹跳时,我的工作非常糟糕。我一直在寻找方法,但是大多数人都使用了乌龟或其他我无法使用的东西,所以它并没有太大帮助。我得到了如何检测墙的算法,但是不知道如何正确编写代码。这是下面的代码,如果有人可以给我关于如何为此编写代码的任何想法,我将不胜感激。

这是我不断从第62行得到的确切错误消息。 错误消息:

.*[.].*?(.*Ananas)

这是完整的代码

builtins.AttributeError: 'Ball' object has no attribute 'get_rect'
line 62 -> self.ballrect = self.ball.get_rect()

1 个答案:

答案 0 :(得分:0)

您的Ball类需要一个rect属性。

#content

此外,在更新中,您需要再次将class Ball: # An object in this class represents a Dot that moves def __init__(self, ball_color, ball_radius, ball_center, ball_velocity, surface): # Initialize a Dot. # - self is the Dot to initialize # - color is the pygame.Color of the dot # - center is a list containing the x and y int # coords of the center of the dot # - radius is the int pixel radius of the dot # - velocity is a list containing the x and y components # - surface is the window's pygame.Surface object self.color = pygame.Color(ball_color) self.radius = ball_radius self.center = ball_center self.velocity = ball_velocity self.surface = surface # create a Rect with width and height equal to radius, # then place it at the center of the ball self.rect = pygame.Rect(0, 0, self.radius, self.radius) self.rect.center = self.center 设置为self.rect.center,否则它将保持不变。 或者,您完全摆脱了self.center,而只使用self.center,因为这是多余的信息。