Python can';不能定义一个特定的函数

Python can';不能定义一个特定的函数,python,pygame,Python,Pygame,我试图修复程序中的一个bug,但我甚至不知道如何搜索它。这个函数应该取我给它的坐标,然后用坐标乘以10的方法制作一个矩形,原点在中心,坐标在矩形的中心,但是我在这些精确的直线上得到了一个“无效语法”。请帮忙 def drawrect(screen, (r, g, b), (x, y, w, h)): pygame.draw.rect(screen, (r, g, b), (((width / 2) - w) * (x * 10), ((height / 2) - h) * (y * 10

我试图修复程序中的一个bug,但我甚至不知道如何搜索它。这个函数应该取我给它的坐标,然后用坐标乘以10的方法制作一个矩形,原点在中心,坐标在矩形的中心,但是我在这些精确的直线上得到了一个“无效语法”。请帮忙

def drawrect(screen, (r, g, b), (x, y, w, h)):
    pygame.draw.rect(screen, (r, g, b), (((width / 2) - w) * (x * 10), ((height / 2) - h) * (y * 10), w, h))

看起来你必须像列表一样给他们打电话。例如,代替r,g和b, 使用rgb[0]、rgb[1]、rgb[2]。而不是x,y,w,h。使用xywh[0]、xywh[1]、xywh[2]和xywh[3]。最后,确保每次调用函数时,rgb和xywh都是列表,以防您还没有

例如:

1 def drawrect(屏幕,rgb,xywh):pygame.draw.rect(屏幕,(rgb[0],rgb[1],rgb[2]),((宽度/2)-xywh[2])*(xywh[0]*10),((高度/2)-xywh[3])*(xywh[1]*10),xywh[2],xywh[3]))

2 xywh=[25,14235122]

3 rbg=[255255]

4 drawrect(屏幕、rgb、xywh)


我希望这对你有用

我试着用答案运行,但它们不起作用,所以我想出了一个新函数,可以分别更改每个数字。另外一个变量是,您可以使某些东西在给定坐标的中心而不是拐角处生成

def place(Input, axis, additional):
return ((axis / 2) - (Input / 2) * 10) - additional

这种定义参数元组的能力仅在Python2.x中存在。现在必须将函数声明为
drawrect(screen,rgb,xywh)
,然后执行
x,y,w,h=xywh
手动解包该参数。(您不需要解包
rgb
,因为您将它作为一个完整的单元传递。)您不能这样解包函数参数。你应该在函数体中解包。@jasonharper所以我把它改成
def-drawrect(screen,rgb,xywh):x,y,w,h=xywh-pygame.draw.rect(screen,(r,g,b),((width/2)-w)*(x*10),((height/2)-h)*(y*10),w,h))
但是我得到了“ConnectionRefusedError:[WinError 10061]无法建立连接,因为目标计算机主动拒绝了它。“可能是因为我像调用drawrect一样调用它(屏幕,255255255,位置[0],位置[1],10,10)这是对的吗?代码中没有任何内容与网络连接有丝毫关系,这就是错误所在。你的问题在别处。@jasonharper我修复了连接问题,但我的代码无法正常工作。最终我决定使用pygame rect draw主函数,但我会通过一个函数运行位置参数,该函数会将它们更改为我想要的坐标。非常感谢你的帮助,我真的很感激。谢谢,但后来我改变了主意,改为使用不同的函数,分别更改每个数字。这可能对未来的项目有所帮助,所以请接受我的建议。