2014-12-25 10 views
0

안녕하세요. 내 아이디어를 실현하는 데 어려움을 겪고 있습니다. 처음에는 두 번의 마우스 클릭으로 사각형을 그려야했지만 제대로 작동하지 않아 한 번의 마우스 클릭으로 고정 크기의 사각형을 그릴 수있었습니다. 여전히 작동하지 않습니다 그러나 은/...대화식으로 파이 게임 그리기

import pygame 
windowSize = (500,500) 
white = (255,255,255) 
black = (0,0,0) 

pygame.init() 
screen = pygame.display.set_mode(windowSize) 
running = 1 

while running: 
    screen.fill(white) 
    pygame.display.update() 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      pygame.quit() 
      running = 0 

인한 문제 여기 SOMEWHERRE

내 코드와 개념적 많은 오류가있을 수 있습니다 알고
 elif event.type == pygame.MOUSEBUTTONDOWN: 
      rect = pygame.Rect(event.dict["pos"],(30,50)) 
      pygame.draw.rect(screen,black,rect,1) 


    pygame.display.flip() 

... 도와주세요입니다!

답변

1

틱마다 전체 화면이 흰색으로 채워집니다. 그래서 실제로 다음 틱에서 화면이 다시 비게됩니다. 그냥 메인 사이클에서 screen.fill(white)을 이동하십시오.

import pygame 
windowSize = (500,500) 
white = (255,255,255) 
black = (0,0,0) 

pygame.init() 
screen = pygame.display.set_mode(windowSize) 
running = 1 

screen.fill(white) 
while running: 
    pygame.display.update() 
    for event in pygame.event.get(): 
     if event.type == pygame.QUIT: 
      pygame.quit() 
     elif event.type == pygame.MOUSEBUTTONDOWN: 
      rect = pygame.Rect(event.dict["pos"],(30,50)) 
      pygame.draw.rect(screen,black,rect,1) 
    pygame.display.flip() 
+0

감사합니다! 그리고 동일한 사각형을 계속해서 다시 업데이트해야하는 경우 어떻게해야합니까? – kwan

+0

@kwan 당신이 의미하는 바에 달려 있습니다. 같은 프리미티브 인 경우 사각형에 대한 모든 좌표를 배열에 저장 한 다음 모든 틱을 화면에서 지우고 (이전과 같이)이 배열에서 모든 사각형을 다시 그릴 수 있습니다. 화면에서 직사각형 영역을 갱신하는 것을 의미한다면'pygame.display.update (rects)'를 사용할 수 있습니다.'rects'는'pygame.Rect' 객체의리스트입니다. – a5kin