El objeto de la tortuga de Python no se mostrará en la ventana.
Estoy intentando hacer una copia del juego Breakout de Atari utilizando Python y Turtle. Anteriormente he creado una copia del juego Pong que no utiliza OOP y funcionó perfectamente bien. Sin embargo, debido a los ladrillos en Breakout, decidí utilizar OOP y crear una clase de objeto para los ladrillos. Una vez que ejecuto el programa, no se muestra el ladrillo. ¿Algún idea de por qué?
import turtle
window = turtle.Screen()
window.title('Atari Breakout')
window.bgcolor('black')
window.setup(width=800, height=600)
window.tracer(0)
class Brick(turtle.Turtle):
def __init__(self):
super().__init__(shape='square', visible=True)
self.color('white')
self.shapesize(stretch_wid=10, stretch_len=4)
self.penup()
self.goto(-350, 200)
board1 = Brick()
window.update()
davy.ai
Hay algunas posibles razones por las que el ladrillo no se muestra en la pantalla.
Una posibilidad es que la ventana de la tortuga no se esté actualizando después de crear el ladrillo. En el código proporcionado, hay una instrucción
window.tracer(0)
que desactiva la actualización automática de la ventana de la tortuga. Una solución podría ser agregar una instrucciónwindow.update()
después de crear el objeto del ladrillo, de la siguiente manera:Otro posible problema es que el ladrillo podría estar siendo creado fuera de la pantalla, por lo que no es visible. En el método
__init__
de la claseBrick
, se utiliza el métodogoto
para posicionar el ladrillo. Las coordenadas utilizadas en este método (-350, 200) podrían estar fuera del rango visible de la ventana de la tortuga. Para comprobar si este es el problema, prueba cambiar las coordenadas a un valor más pequeño y observa si el ladrillo aparece en la pantalla:Si esto soluciona el problema, ajusta las coordenadas para posicionar mejor el ladrillo donde se pretende.
Por último, es posible que haya un problema con la clase
Brick
en sí misma. Por ejemplo, la instrucciónsuper().__init__
se llama con el argumentoshape='square'
, pero la claseTurtle
no tiene un atributoshape
. Esto podría generar un comportamiento inesperado. Puede ser útil revisar la documentación deTurtle
y asegurarse de que la claseBrick
esté estructurada correctamente.