2014-12-24 67 views
1

当我运行此代码时,它显示一个空白的黑色窗口,它说x未定义。在pygame中打开一个空白的黑色窗口

import pygame,sys 
from pygame.locals import * 
pygame.init() 
screen = pygame.display.set_mode((800,500)) 
screen.fill((255,255,255)) 

#basic stuff 


pygame.draw.line(screen,(0,0,0),(500,0),(500,500)) 
    pygame.draw.rect(screen, (0,255,0), (20,50,460,420)) 
    #pygame.draw.line(screen, (0,0,0), (500,0),(500,500)) 
    #pygame.draw.line(screen, (0,0,0), (500,500),(0,500)) 

#draw 

while 1: 
    for event in pygame.event.get(): 
     if event.type == QUIT: 
      pygame.quit() 
      sys.exit() 
     if event.type == MOUSEBUTTONDOWN: 
      pos = pygame.mouse.get_pos() 
      x = int(pos[0]//20) 
      y = int(pos[1]//20) 
      j = int(x*20+20) 
      l = int(y*20+20) 
      print(x+1,' ',y+1) 
     if x > 2 and y > 3 and x < 24 and y < 24: 
      pygame.quit() 

其不是颜色。它的剂量不作出任何强硬的线条给我的命令

myfont = pygame.font.SysFont("monospace", 20) 


    label = myfont.render("Allameh helli 3 stock exchange group",1,0,0,0)) 
    screen.blit(label, (30, 10)) 

什么是我的错误(S)在这里,使我无法使得画面白色和提高的错误?

回答

0

您需要添加此行您while循环,但不是在你的for循环:

screen.fill([255, 255, 255]) 

外这行代码和while循环后:

pygame.quit() 

你有不是定义为x也不是y。您需要重新定义这些变量,包括pos以防止出现错误。错误在于你的if语句:

 if x > 2 and y > 3 and x < 24 and y < 24: 
      pygame.quit() 

与上面的不一致。该程序然后不能看到什么xy是,提高了错误。顺便说一句,你的while循环很好。我希望这可以帮助你!

+0

感谢您的帮助。 – kiant