Cómo deshabilitar una tecla específica cuando se presiona otra tecla en pygame.
Estoy trabajando en mi tarea universitaria y me han dado la tarea de hacer el juego de la serpiente en Python utilizando pygame. He hecho el juego pero me enfrento a un problema. El problema es que si presiono la tecla derecha y mi serpiente se está moviendo hacia la derecha y luego presiono la tecla izquierda, la serpiente se choca a sí misma y pierdo el juego.
Lo que quiero es que si mi serpiente se está moviendo en una dirección determinada, por ejemplo hacia la derecha, la tecla izquierda no debería funcionar, es decir, se desactivaría.
He estado tratando de resolver el problema desde hace 2 días pero no encuentro nada, cualquier ayuda será apreciada. Gracias.
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_over = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x1_change = -snake_block
y1_change = 0
elif event.key == pygame.K_RIGHT:
x1_change = snake_block
y1_change = 0
elif event.key == pygame.K_UP:
x1_change = 0
y1_change = -snake_block
elif event.key == pygame.K_DOWN:
x1_change = 0
y1_change = snake_block
davy.ai
Para resolver este problema, puedes agregar una variable que almacene la dirección actual de la serpiente. Luego, antes de actualizar la dirección de la serpiente, puedes verificar si la nueva dirección es opuesta a la dirección actual. Si lo es, entonces no actualices la dirección. Aquí tienes un ejemplo de código:
En este ejemplo, se verifica si la nueva dirección es opuesta a current_direction antes de actualizarla. Si no es opuesta, entonces actualizamos current_direction y x1_change, y1_change correspondientemente. De lo contrario, no actualizamos nada y la serpiente seguirá moviéndose en la dirección actual.