как сделать прямую в pygame, чтобы остановиться на определенной позиции?

#python #pygame #sprite #pygame-surface

#питон #pygame #фея #pygame-поверхность

Вопрос:

Я хотел бы, чтобы мой спрайт остановился в определенной позиции, т. е. (20 100), начиная, скажем, с начальной позиции (100 100). Не могли бы вы помочь мне с этим?

 class Character(pygame.sprite.Sprite):  super().__init__()  self.x=x  self.y=y  self.image=image  self.rect.self.image.get_rect()  self.rect.center=(x,y)  #Assume initially x=100,y=100    def move_character(self):  self.x  =-1 #Telling the character to move left   if self.rect.center==(20,100):  pass #This is where I want the rect to stop moving  

Ответ №1:

Вы меняете позицию до того, как проверите ее. Это абсолютно ничего не даст, кроме как изменить положение

Вместо этого вы можете проверить положение, прежде чем менять положение

 def move_character(self):  if self.rect.center == (20, 100):  return # Stops the function here, does not change X  self.x -= 1  

Для этого существуют различные возможные решения, вы просто должны проверить позицию до того, как она изменится, а не после. Вы также должны что-то сделать, если оно перешло границу, как я сделал с return заявлением.