我是编程新手。我在Windows 8上使用python 3.4和pygame cp34。我创建了这个小家伙,我正在看我能用它做些什么。当我在程序中加载这部分代码时(通过在主程序循环中调用带有“guy()”的函数)会发生什么情况,它似乎默认出现在(0,0)参数中(左上角)屏幕)。根据我在互联网上阅读的所有说明,我所要做的就是在主程序循环中调用“guy(screen,100,100)”,图像应该出现在左上角图像从100,100 xy参数开始。相反的是,无论我的指示如何,该人总是停留在屏幕的左上角0,0。没有错误消息。说明完全被忽略了。我的def中有什么东西阻止我提供参数说明吗? 同样,如果在主程序循环中调用,则会显示该人,但参数从不会从屏幕的左上角发生变化。
g = pygame.Color('green')
c = pygame.Color('cyan')
b = pygame.Color('brown')
w = pygame.Color('white')
r = pygame.Color('red')
o = pygame.Color('orange')
e = pygame.Color('yellow')
data = [
[c, c, c, w, c, c, c, w, c, c, w, c, c, c, w, w, c],
[c, c, w, w, w, c, c, w, w, c, w, w, c, w, w, w, w],
[c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c],
[c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c],
[c, c, c, c, c, c, c, c, o, o, o, c, c, c, c, c, c],
[c, c, c, c, c, c, c, c, o, o, o, c, c, c, c, c, c],
[c, c, c, c, c, e, c, c, g, e, g, c, c, e, c, c, c],
[c, c, c, c, c, c, e, c, e, e, e, c, e, c, c, c, c],
[c, c, c, c, c, c, c, e, c, e, c, e, c, c, c, c, c],
[c, c, c, c, c, c, c, c, r, r, r, c, c, c, c, c, c],
[c, c, c, c, c, c, c, c, r, r, r, c, c, c, c, c, c],
[c, c, c, c, c, c, c, c, r, r, r, c, c, c, c, c, c],
[c, c, c, c, c, c, c, c, b, c, b, c, c, c, c, c, c],
[c, c, c, c, c, c, c, c, b, c, b, c, c, c, c, c, c],
[g, g, g, g, g, g, g, r, r, g, r, r, g, g, g, g, g],
[g, g, g, g, g, g, g, g, g, g, g, g, g, g, g, g, g],
]
def guy(screen, x, y):
for y, row in enumerate(data):
for x, color in enumerate(row):
pic = pygame.Rect(x*5,y*5,5,5)
screen.fill(color, pic)
答案 0 :(得分:0)
您正在使用 enumerate 的返回值覆盖输入 x
和 y
。更改为 def guy(screen, x1, y1):
和 pic = pygame.Rect(x*5+x1,y*5+y1,5,5)