Python 在pygame中,如何制作图像列表并在随机位置绘制它们?
我需要在屏幕上随机位置绘制精灵,我如何才能做到这一点Python 在pygame中,如何制作图像列表并在随机位置绘制它们?,python,image,pygame,move,Python,Image,Pygame,Move,我需要在屏幕上随机位置绘制精灵,我如何才能做到这一点 class SpriteOrange(MyGame): def __init__(self, image): self.image = pygame.image.load(image) self.x = 0 self.y = 0 def draw1(self, screen): screen.blit(self.image, self.x, self.y) def update(self): self
class SpriteOrange(MyGame):
def __init__(self, image):
self.image = pygame.image.load(image)
self.x = 0
self.y = 0
def draw1(self, screen):
screen.blit(self.image, self.x, self.y)
def update(self):
self.x = random.randrange(0, 400)
self.y = random.randrange(0, 400)
您可以使用函数
draw(screen)
和update()
(随机更改位置)创建类SpriteOrange
:
您可以创建SpriteOrange的实例列表
self.oranges = []
for x in range(10):
self.oranges.append(SpriteOrange('orange.png'))
您可以更改位置:
for o in self.oranges:
o.update()
你可以画:
for o in self.oranges:
o.draw(self.screen)
如果您需要更多的了解,并且范围无法工作,那么您正在对范围返回的整数调用更新。A
表示self中的o。橙色是您想要的。另外,由于所有橙色精灵都是相同的图片,因此无需为每个橙色加载新图像。我建议将图像作为参数,而不是发送图像路径。我假设OP希望将SpriteOrange与不同的图像一起使用,并将其用作创建SpriteSwitch的示例。他已经在内存中列出了3个指向同一曲面的桔子。但你是对的,我们不应该担心这样一个小程序中的内存问题。我已经按照你说的做了所有事情,我现在编辑了代码,但现在我有另一个问题,python告诉我:回溯(最近一次调用):文件“mygame.py”,第122行,在mygame().run()AttributeError中:“mygame”对象没有属性“run”
for o in self.oranges:
o.draw(self.screen)