Python 对Pygame中的某个参数调用函数

Python 对Pygame中的某个参数调用函数,python,function,parameters,pygame,coordinates,Python,Function,Parameters,Pygame,Coordinates,我是编程新手。我在Windows8上使用Python3.4和pygame cp34。我创造了这个小家伙,我正在看我能用它做些什么。当我在程序中加载这部分代码(通过在主程序循环中使用“guy()”调用函数)时,默认情况下它似乎出现在(0,0)参数(屏幕左上方)中。根据我在互联网上读到的所有说明,我所要做的就是在主程序循环中调用,比如“guy(screen,100100)”,图像应该显示在图像的左上角,从100x y参数开始。相反,不管我怎么说,这个家伙总是在屏幕左上角0,0处停留。没有错误消息。这

我是编程新手。我在Windows8上使用Python3.4和pygame cp34。我创造了这个小家伙,我正在看我能用它做些什么。当我在程序中加载这部分代码(通过在主程序循环中使用“guy()”调用函数)时,默认情况下它似乎出现在(0,0)参数(屏幕左上方)中。根据我在互联网上读到的所有说明,我所要做的就是在主程序循环中调用,比如“guy(screen,100100)”,图像应该显示在图像的左上角,从100x y参数开始。相反,不管我怎么说,这个家伙总是在屏幕左上角0,0处停留。没有错误消息。这些说明完全被忽略了。def中是否存在阻止我给出参数说明的内容? 同样,如果在主程序循环中调用,这个家伙就会出现,但是参数从屏幕的左上角永远不会改变

import pygame


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)

您正在使用enumerate的返回值覆盖输入
x
y
。更改为
def guy(屏幕,x1,y1):
pic=pygame.Rect(x*5+x1,y*5+y1,5,5)
您正在使用enumerate的返回值覆盖输入
x
y
。更改为
def guy(屏幕,x1,y1):
pic=pygame.Rect(x*5+x1,y*5+y1,5,5)

您正在使用
枚举
的返回值覆盖输入
x
y
。如果您更改为
def guy(屏幕,x1,y1):
pic=pygame.Rect(x*5+x1,y*5+y1,5,5)
?@zehnpaard就是这样!这就是答案!非常感谢你。你不知道我为这个撞了多久了!您正在使用
enumerate
中的返回值覆盖输入
x
y
。如果您更改为
def guy(屏幕,x1,y1):
pic=pygame.Rect(x*5+x1,y*5+y1,5,5)
?@zehnpaard就是这样!这就是答案!非常感谢你。你不知道我为这个撞了多久了!