Quiero mover un objeto de ida y vuelta en pygame, pero solo se mueve hacia la izquierda y luego se detiene.
Estoy tratando de mover mi sprite jefe hacia adelante y hacia atrás, pero solo se mueve hacia la izquierda y se queda allí. ¿Cuál es el problema con mi código?
def movimiento_horizontal(self):
self.rect.x -= 1
if self.rect.left < 0: #cuando el jefe alcanza el extremo izquierdo
self.rect.x += 1 #mover hacia la derecha
if self.rect.right == screen_width: #cuando el jefe alcanza el extremo derecho
self.rect -= 1 #mover hacia la izquierda
if self.rect.midbottom == [boss_x, boss_y]: #detener el movimiento cuando el jefe alcanza la posición original
pass
davy.ai
Parece que hay un problema con la lógica del código proporcionado. El movimiento del sprite del jefe parece moverse solo hacia la izquierda y quedarse allí. El problema con el código radica en el hecho de que las instrucciones
if
están anidadas incorrectamente, lo que provoca que el código no funcione como se pretende. El código correcto debería estar escrito de la siguiente manera:En este código revisado, las instrucciones
if
están separadas y priorizadas correctamente, lo que permite que el sprite del jefe se mueva hacia adelante y hacia atrás dentro de los límites de la pantalla de juego.