在Pygame中调用函数到某个参数

时间:2015-10-12 01:59:41

标签: python function parameters pygame coordinates

我是编程新手。我在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)

1 个答案:

答案 0 :(得分:0)

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