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.

¿Por qué mi borde/frontera no funciona para mi objeto tortuga?

Estoy haciendo el juego de la serpiente a través de python turtle, pero por alguna razón mi código de choque con el borde no está funcionando. Funcionó para un juego de pong de diseño similar, pero cuando la cabeza de la serpiente se mueve fuera de la pantalla de la ventana, no sigue la función de regresar a 0,0 que establecí para ella. ¿Alguna idea de dónde podría estar el error? A continuación se muestra un resumen del script completo.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Basándonos en el código proporcionado, parece que el problema podría estar en el código de colisión con los bordes. Actualmente, el código solo verifica si la coordenada y de la cabeza es mayor que 240 y la devuelve al centro de la pantalla en (0,0). Sin embargo, esta lógica solo funciona si la cabeza de la serpiente se mueve hacia arriba.

    Para solucionar esto, puede agregar declaraciones condicionales adicionales para verificar cuándo la cabeza de la serpiente golpea los otros bordes. Por ejemplo, si la cabeza de la serpiente se mueve fuera de la pantalla hacia la izquierda, su coordenada x sería menor que -240, y podría devolverla a (0,0) usando la misma función goto().

    Aquí hay un ejemplo de cómo podría modificar el código para verificar los cuatro bordes:

    while True:
        wn.update()
    
        if head.ycor() > 240 or head.ycor() < -240 or head.xcor() > 240 or head.xcor() < -240:
            head.goto(0, 0)  # Devolver la cabeza de la serpiente al centro de la pantalla
    
    

    Este código verifica si la coordenada y de la cabeza de la serpiente es mayor que 240 (borde superior), menor que -240 (borde inferior) o si su coordenada x es mayor o menor que 240 (bordes izquierdo y derecho). Si se cumple alguna de estas condiciones, la cabeza de la serpiente se devolverá al centro de la pantalla en (0,0).

    ¡Espero que esto ayude a resolver el problema de colisión con los bordes en su juego de serpientes!

Comments are closed.