pygame - 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)
解决方案
推荐阅读
- python - How do I remove these stop words with word boundaries?
- apache-spark - 将 Spark 架构转换为 Redshift Spectrum 嵌套架构
- json - 如何将包含数组的 JSON 对象转换为单个 Struct 实例
- apache-spark - AWS EMR - ModuleNotFoundError:没有名为“pyarrow”的模块
- c++ - Qt 发现导入不起作用,但项目正在运行。部分
- ios-app-extension - FolioReaderKit 在 Siri Intent 扩展中使用时抛出错误
- python - 需要一个简单的解决方案来使用 python IR(NEC) 和 RF(433.3kHz) 库发送十六进制代码
- reactjs - 使用 act 不会更新状态?
- db2 - 用于验证 UPC 条形码校验和值的 DB2 SQL 存储函数...?
- ag-grid - ag-grid 主详细信息复选框不持久