加载随机对象,并将它们绘制到屏幕上

时间:2013-11-19 12:48:44

标签: python pygame

我正在使用python,pygame。

我试图向窗口显示随机数量的图像,下面是如何:

  

类精灵():

def __init__(self):
  self.screen = pygame.display.set_mode((200,200))
  self.sprite=[[500,200]]

def load_sprite(self, image, x,y):
  image = pygame.image.load(image)
  self.screen.blit(image,(x,y))
  pygame.dsiplay.update()

def load_sprites(self, image, x,y):
   image = pygame.image.load(image)
   self.screen.blit(image,(x,y))
   pygame.display.update()

def draw_random_sprites(self, rand1, rand2):
   self.load_spites(0,200,random.randint(rand1,rand2))

当我从主类调用流动方法时:

class Main():

    s = sprite()
    s.load_sprites(self, image, x,y): //here i want the user to determine the number of random sprites they load. 

但是,当我这样做时,我得到了一个

  

无法寻找数据源错误

关于如何实现这一目标的任何建议?

修改

继承程序的堆栈跟踪。

Traceback (most recent call last):
  File "C:\Python33\game\Main.py", line 15, in <module>
    s.draw_random_sprites(20,40)
  File "C:\Python33\game\sprite.py", line 29, in draw_random_sprites
    self.load_spites(0,200,random.randint(rand1,rand2))
  File "C:\Python33\game\sprite.py", line 22, in load_sprites
    image = pygame.image.load(image)
pygame.error: Can't seek in this data source

2 个答案:

答案 0 :(得分:2)

我发现了两个错误。第一个是在这里,你基本上告诉load_sprites加载图像0.你将它放在200和一个随机整数之间。

self.load_spites(0,200,random.randint(rand1,rand2))

标记图像作为输入和输出传递。这可能会引起一些问题,除非这正是你想要的。

image = pygame.image.load(image)

看看修复这两个项目,你应该能够做到这一点。这样做的方法可能是:

self.load_spites("sprite.png",200,random.randint(rand1,rand2))

def load_sprites(self, image_file, x,y):
   image = pygame.image.load(image_file)

答案 1 :(得分:1)

获取随机数量的图像(不少于1,不超过100)

def draw_random_sprites(self, rand1, rand2):
    for i in range(random.randint(1,100)):
        self.load_spites("sprite.png",200,random.randint(rand1,rand2))

顺便说一下:load_sprite()load_sprites()相同,因此您可以使用load_sprite()代替load_sprites()并删除load_sprites()