我正在使用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
答案 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()