es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La aplicación PyGame no ilumina las casillas debajo del cursor como se esperaba.

Estoy tratando de construir un tablero de ajedrez donde las casillas debajo de mi cursor se iluminen. Logré crear el tablero de ajedrez, pero cuando intenté implementar la iluminación de las casillas debajo de mi cursor, todo salió mal.

Lo único que hace el código es alternar entre verde claro y verde oscuro y dibujar un rectángulo, y si la posición del cursor es igual al rectángulo que se va a escribir, cambio los verdes claros y oscuros a verdes más claros llamados: LIGHTLIGHTGREEN y LIGHTDARKGREEN.

Configuración

import pygame,sys
pygame.init()
WIDTH = 500
HEIGHT = 500
tamaño_celda = 50
pantalla=pygame.display.set_mode((WIDTH,HEIGHT))
pygame.display.set_caption(‘AYUDA’)
FPS=pygame.time.Clock()

VERDE_OSCURO = (76,175,79)
VERDE_CLARO_OSCURO = (126,225,129)
VERDE_CLARO = (139,195,74)
VERDE_MUY_CLARO = (189,245,124)

def posicion_cursor():
mx,my = pygame.mouse.get_pos()
mx = int(mx / tamaño_celda)
my = int(my / tamaño_celda)
print(mx,my)
return mx,my

while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()

# Colores
NEGRO=(0,0,0)

final_del_juego=False
while not final_del_juego:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()


    mx,my = posicion_cursor()
    LIGHT = VERDE_CLARO
    DARK = VERDE_OSCURO
    COLOR = DARK
    for x in range(0,10):
        for y in range(0,10):
            if mx == x and my == y:
                LIGHT = VERDE_MUY_CLARO
                DARK = VERDE_CLARO_OSCURO
            else:
                LIGHT = VERDE_CLARO
                DARK = VERDE_OSCURO
            if COLOR == LIGHT:
                COLOR = DARK
            else:
                COLOR = LIGHT
            pygame.draw.rect(pantalla,COLOR,(x*tamaño_celda,y*tamaño_celda,tamaño_celda,tamaño_celda))
        if COLOR == LIGHT:
            COLOR = DARK
        else:
            COLOR = LIGHT

    pygame.display.update()
    FPS.tick(60)
Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que tienes la estructura básica del código configurada, pero debes asegurarte de que los colores se estén estableciendo correctamente. Puedes hacer esto agregando una declaración if para verificar si la posición del mouse es igual al rectángulo que va a escribirse. Si es así, puedes establecer los colores en LIGHT_LIGHT_GREEN y LIGHT_DARK_GREEN.

    si mx == x y my == y:
        LIGHT = LIGHT_LIGHT_GREEN
        DARK = LIGHT_DARK_GREEN
    else:
        LIGHT = LIGHT_GREEN
        DARK = DARK_GREEN
    

Comments are closed.