大家好,我是python的新手,尝试检测墙壁(屏幕的边缘)并使当我的球撞到墙壁时弹跳时,我的工作非常糟糕。我一直在寻找方法,但是大多数人都使用了乌龟或其他我无法使用的东西,所以它并没有太大帮助。我得到了如何检测墙的算法,但是不知道如何正确编写代码。这是下面的代码,如果有人可以给我关于如何为此编写代码的任何想法,我将不胜感激。
这是我不断从第62行得到的确切错误消息。 错误消息:
.*[.].*?(.*Ananas)
这是完整的代码
builtins.AttributeError: 'Ball' object has no attribute 'get_rect'
line 62 -> self.ballrect = self.ball.get_rect()
答案 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
,因为这是多余的信息。