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)
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 enLIGHT_LIGHT_GREEN
yLIGHT_DARK_GREEN
.