我最近问过这个问题,但是我只得到了一个答案,但对我来说并没有真正解释。我需要检查两个对象之间的碰撞。一个是以下列方式加载的PNG图像:
bird = pygame.image.load("bird.png").convert_alpha()
另一个是以下列方式创建和绘制的pygame矩形:
pipeTop = pygame.draw.rect(screen, (0,200,30), Rect((scrollx,0),(30,height)))
有人告诉我,最好的方法是让我的小鸟成为class Spirte:
的精灵。这对我没什么帮助,因为我无法找到关于创建/转换图像的教程。一个精灵。我也不会真的没有我需要的方法,虽然我可能认为我只需要__init_
(由于格式化我错过了第二个下划线)而在init
方法中我不知道我会想要什么放。感谢您提供任何帮助;然而不幸的是,我对Pygame和OOP都很陌生,因此非常感谢任何额外的细节和/或解释。
编辑: 我目前试过这个:
if bird.colliderect(pipeTop):
但它只会引发以下错误:
AttributeError: 'pygame.Surface' object has no attribute 'colliderect'
答案 0 :(得分:0)
您可以使用pygame.Surface.get_rect()
获取碰撞矩形,但请注意文档:
此矩形始终从0开始,宽度为0。和高度与图像大小相同。
您可能希望将其位置更改为您选择将图像绘制到屏幕的位置。
通常,您可能希望使用sprites来简化此过程。精灵管理单个对象中的图像和位置,使得更容易完成这样的任务。