对不起小说的回答。 我想制作一个网格,当我点击方块时,然后传递给WHITE一秒钟,然后返回BLACK。对我来说,逻辑形式就是这样,但有一点我不明白:( pygame.time.delay(1000)不能工作)
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()
答案 0 :(得分:0)
pygame.time.delay(1000)
正在工作!这导致程序在一整秒内完全没有做任何事情;这包括不更新屏幕,因为如果没有调用pygame.display.flip(),屏幕将不会更新,这不会发生,因为程序甚至没有做任何一整秒的事情。
以下是一个以正确方式等待一整秒的程序示例:
import pygame, sys
pygame.init()
screen = pygame.display.set_mode([500,500])
clock = pygame.time.Clock()
fps = 60
delay = 0
while 1:
clock.tick(fps)
delay -= 1
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
if event.type == pygame.MOUSEBUTTONDOWN:
delay = fps #a one second delay
if delay <= 0:
screen.fill([0,0,0])
else:
screen.fill([255,255,255])
pygame.display.flip()
请注意,此处唯一的延迟是帧速率限制器(clock.tick)。由于delay
设置为fps
,而fps为“每秒的帧数”,因此将delay
设置为fps
等于整秒延迟。< / p>
我无法测试此代码,但是当您点击屏幕时它应该做的是闪烁白色一秒钟。您应该能够在自己的代码中应用相同的概念。
如果您需要进一步澄清(或我的代码无效),请在评论中通知我,我将非常乐意为您提供进一步的帮助!