El problema es en

            grid[row][column] = 1
            pygame.time.delay(1000)
            grid[row][column] = 0

Aquí pones esa celda en 1, se pausa el programa y cuando se retoma la
secuencia, lo vuelves a asignar a 0, eso ace que al entrar al ciclo
que pone los colores va a leer que esa celda es cero, por lo tanto la
pone en color negro.

Lo que puede hacer, es que al dar click se asigne esa celda a 1; el
delay y la asignación a 0 lo pones despues de pintar la celda.

Espero esto te sirva

Suerte

2017-02-06 21:44 GMT-06:00, miquel parera <computer.music.n...@gmail.com>:
> Hola
>
> Disculpad mi pregunta de novato, pero hay algo en el manejo del tiempo que
> no acabo de entender.  Quiero que, al clickar un cuadradro, se torne blanco
> y, al segundo, vuelva a ser negro.
> Pero ni pygame.time.delay(1000) funcionan ni time.sleep(1) funcionan.
>
> Alguna idea? gracias!
>
> 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()
>
>
>
>
> --
>
>
> *Musicnumbers Netlabel (for almost silence): http://musicnumbers.es/
> <http://musicnumbers.wordpress.com/>*
>
_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es

Responder a