Schiebe-Sprites

Ich möchte, dass mein Sprite gleitet, wie er auf Eis ist. Wenn er also auf dem Boden ist, dann kann er normal laufen, aber wenn er Eis berührt, wird er gleiten, bis etwas aufhört. Weiß jemand, wie man das machen kann? Vielen Dank

  • Pygame: Kollision von Seiten von Sprite
  • Wie füge ich eine Zeile als Sprite in Pygame hinzu?
  • Python Animation Timing
  • Animiertes Sprite aus wenigen Bildern
  • Versuchen, über Sprite zu ziehen oder Bildpyglet zu wechseln
  • Pygame macht ein Sprite Gesicht die Maus
  • Pyglet: Ändern des Bildes einer Sprite-Instanz beim Drücken einer Taste
  • Pygame - Sprite Bewegung verursacht Schichten
  • One Solution collect form web for “Schiebe-Sprites”

    Manipulieren Sie die Reibungskoeffizienten wie das Beispiel " Sprite Movement Towards a Target " (unten modifiziert):

    class Sprite(pygame.sprite.Sprite): ICE = 0.01 LAND = 1. def __init__(self): # ... self.normal_friction = .95 # friction while accelerating self.slowing_friction = .8 # friction while slowing down def update(self): # ... if self.dir: # if there is a direction to move if self.in_ice_region(): surface_coefficient = Sprite.ICE else: surface_coefficient = Sprite.LAND if self.distance_check(self.dist): # if we need to slow down self.speedX += (self.dir[0] * (self.speed / 2)) # reduced speed self.speedY += (self.dir[1] * (self.speed / 2)) self.speedX *= surface_coefficient * self.slowing_friction # increased friction self.speedY *= surface_coefficient * self.slowing_friction else: # if we need to go normal speed self.speedX += (self.dir[0] * self.speed) # calculate speed from direction to move and speed constant self.speedY += (self.dir[1] * self.speed) self.speedX *= surface_coefficient * self.normal_friction # apply friction self.speedY *= surface_coefficient * self.normal_friction self.trueX += self.speedX # store true x decimal values self.trueY += self.speedY self.rect.center = (round(self.trueX),round(self.trueY)) # apply values to sprite.center 
    Python ist die beste Programmiersprache der Welt.