首页 > 解决方案 > Pygame Breakout Game - 碰撞仅适用于图像而不适用于创建的表面

问题描述

我正在写一个突围游戏。每当我上传图像时,碰撞似乎都可以正常工作。但如果我使用矩形,它将停止运行。在第一个代码块中,我使用了 pygame.Surface 在这种情况下碰撞不起作用。

在第二个块中,我使用了上传的图片,它可以无缝运行。我不知道为什么。

# Slider
class Slider(pygame.sprite.Sprite):
    def __init__(self, x, y):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.Surface((100, 10))
        self.image.fill(RED)
        self.rect = self.image.get_rect()
        self.rect.center = (x, y)
        self.mask = pygame.mask.from_surface(self.image)

    def slide_left(self):
        self.rect.x -= 13

    def slide_right(self):
        self.rect.x += 13


# Ball
class Ball(pygame.sprite.Sprite):
    BALL_SPEED = 5
    def __init__(self, x, y):
        pygame.sprite.Sprite.__init__(self)
        self.direction_x = 1
        self.direction_y = 1
        self.image = pygame.image.load("ball.png")
        self.rect = self.image.get_rect()
        self.rect.center = (x, y)
        self.mask = pygame.mask.from_surface(self.image)

标签: pygamecollisionrect

解决方案


推荐阅读