美好的一天,
我喜欢15个图像,我需要成为按钮。我有按钮使用Box()(Box - 看起来像这样)
class Box(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.Surface((35, 30))
self.image = self.image.convert()
self.image.fill((255, 0, 0))
self.rect = self.image.get_rect()
self.rect.centerx = 25
self.rect.centery = 505
self.dx = 10
self.dy = 10
我正在尝试使按钮与图像精灵一起使用。所以我试图复制盒子的类样式并为我的Icons做同样的事情。代码看起来像这样......
class Icons(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.image = pygame.image.load("images/airbrushIC.gif").convert()
self.rect = self.image.get_rect()
self.rect.x = 25
self.rect.y = 550
main()
中的代码rect = image.get_rect()
rect.x = 25
rect.y = 550
ic1 = Icons((screen.get_rect().x, screen.get_rect().y))
screen.blit(ic1.image, ic1.rect)
pygame.display.update()
此代码生成一个位置(接受1个参数但有2个存在)错误或图像未被引用错误(在Icon类中)。
我不确定这是否是正确的方法。我知道我需要加载所有图像(作为精灵)...将它们存储在一个数组中...然后有我的鼠标检查它是否使用for循环单击数组中的一个项目。
感谢。
答案 0 :(得分:2)
您正在尝试将参数传递给Icons()
,但您的__init__()
方法不会参数。如果你想将它们传递给Sprite()
构造函数,那么你可能想要这样的东西:
class Icons(pygame.sprite.Sprite):
def __init__(self, *args):
pygame.sprite.Sprite.__init__(self, *args)
...
使用star运算符接受任意数量的额外参数(*args
),然后将它们传递给精灵构造函数。