pygame.draw.line语法无效?

时间:2017-06-03 15:03:42

标签: python pygame

所以,我正在按照一个教程进行操作,该教程目前让我构建以下内容,以便使用pygame函数快速查看绘图。

import pygame, sys
from pygame.locals import *

pygame.init() #has to be called before any other pygame functions

#setup the window
DISPLAYSURF = pygame.display.set_mode((500,400), 0, 32)
pygame.display.set_caption('Drawing')

#colors
black = (0, 0, 0, 0)
white = (255, 255, 255, 255)
red = (255, 0, 0)
green = (0, 255, 0)
BLUE = (0, 0, 255)

#draw on the surface object
DISPLAYSURF.fill(white)
pygame.draw.polygon(DISPLAYSURF, green, ((146,0), (291,106), (236,277), 
(56,277), (0,106))
pygame.draw.line(DISPLAYSURF, BLUE, (60, 60), (120, 60), 4)
pygame.draw.line(DISPLAYSURF, BLUE,(120,60), (60,120))
pygame.draw.line(DISPLAYSURF, BLUE,(60,120), (120,120), 4)
pygame.draw.circle(DISPLAYSURF, BLUE, (300,500), 20, 0)
pygame.draw.ellipse(DISPLAYSURF, red, (300, 250, 40, 80), 1)
pygame.draw.rect(DISPLAYSURF, red, (200,150,100,50))

pixObj = pygame.pixelarray(DISPLAYSURF)
pixObj[480][380] = black
pixObj[482][382] = black
pixObj[484][384] = black
pixObj[486][386] = black
pixObj[488][388] = black
del pixObj

#run game loop
while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()
    pygame.display.update()

我的问题是,在尝试运行此代码时,我收到指向第一个pygame.draw.line的无效语法错误。如果这在某种程度上是一个错字,我会有点意外,我多次重新输入这些行以确保它们是正确的,甚至双重检查文档以确保它仍然是有效的语法。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

专注于那条线:

pygame.draw.polygon(DISPLAYSURF, green, ((146,0), (291,106), (236,277), (56,277), (0,106))

让我们对它进行一些更改,将有效语法转换为有效的语法。

pygame.draw.polygon(DISPLAYSURF, green, ((), (), (), (), ())

pygame.draw.polygon(DISPLAYSURF, green, ()

pygame.draw.polygon(

有更多开括号而不是结束。

如果以下行是正确的,您应该在" green"之后删除一个打开的paren。