Cómo hacer que un rectángulo en pygame se detenga en una posición específica?
Me gustaría que mi sprite se detenga en una posición específica, por ejemplo, (20,100), mientras comienza desde la posición de inicio, digamos (100,100). ¿Podrías ayudarme con esto?
class Personaje(pygame.sprite.Sprite):
def __init__(self, x, y, image):
super().__init__()
self.x = x
self.y = y
self.image = image
self.rect = self.image.get_rect()
self.rect.center = (x, y)
# Supongamos que inicialmente x=100, y=100
def mover_personaje(self):
self.x += -1 # Le indico al personaje que se mueva hacia la izquierda
if self.rect.center == (20,100):
pass # Aqui es donde quiero que el rectángulo deje de moverse
davy.ai
Para hacer que tu sprite se detenga en la posición (20,100), puedes modificar el método move_character() para comprobar la posición actual del sprite y detenerlo cuando alcance la posición deseada.
Aquí tienes un ejemplo de fragmento de código que puedes utilizar:
En este ejemplo, he añadido un atributo
target_pos
a la clase Character que especifica la posición en la que quieres que el sprite se detenga. Luego, en el métodomove_character()
, compruebo si el sprite aún no ha alcanzado la posición objetivo y lo muevo en consecuencia.Ten en cuenta que he utilizado dos declaraciones
if
separadas para mover el sprite horizontal y verticalmente, ya que tienen condiciones de terminación diferentes. Puedes modificar este código según tu caso de uso específico.