새로운 답변을 드려 죄송합니다. 격자를 만들고 사각형을 클릭 한 다음 1 초에 WHITE로 이동 한 다음 BLACK으로 돌아갑니다. 나를 위해, 논리적 형식이,하지만 난 이해가 안 뭔가가있다 :파이 게임 시간 관리
import pygame
# Pygame screen
# Cuadrados
# Añadir tiempo al click
# colores
BLACK = ( 0, 0, 0)
WHITE = (255, 255, 255)
GREEN = ( 0, 255, 0)
RED = (255, 0, 0)
# iniciar pygame
pygame.init()
# caracteristicas de la ventana
size = (260,260)
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Pantalla")
# definir array de cuadro (10x10)
width = 20
height = 20
margin = 5
grid = [[0 for x in range(10)] for y in range(10)]
# control de procesos
done = False
clock = pygame.time.Clock()
# loop principal
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
# evento de click
elif event.type == pygame.MOUSEBUTTONDOWN:
column = pos[0] // (width + margin)
row = pos[1] // (height + margin)
# print
print("Click ", pos, "Coordenadas: ", row, column)
grid[row][column] = 1
pygame.time.delay(1000)
grid[row][column] = 0
# lógica de click
pos = pygame.mouse.get_pos()
x = pos[0]
y = pos[1]
#color de fondo
screen.fill(WHITE)
# dibujar cuadro
for row in range(10):
for column in range(10):
if grid[row][column] == 1:
color = WHITE
else:
color = BLACK
pygame.draw.rect(screen, color, [margin + (margin + width) * column, margin + (margin + height) * row, width, height])
# escribir todo
pygame.display.flip()
clock.tick(60)
# finalizar
pygame.quit()
지연 계산 프레임은 부정확 할 수 있습니다. 대신에'delay - = clock.tick (fps)'를하고 이벤트 루프에서 delay를'delay = 1000'으로 설정할 수 있습니다. 'clock.tick'은'clock.tick'에 대한 마지막 호출 이후의 밀리 초 양을 반환합니다. –
좋은 지적. 나는 그저 단순함을 위해 그대로 두겠습니다. 또한, 첫 번째 방법은 지연을 설명하기 때문에 실제로 더 나을 수 있습니다. 프로그램이 뒤쳐지면 다른 것보다 앞서 가지 않습니다. 고맙습니다! – Douglas