Pygame, Velocidad de movimiento del personaje

Soy estudiante de la Universidad de Utah y estoy trabajando en un proyecto en Pygame con el que tengo problemas menores. He codificado la totalidad del juego, y funciona perfectamente, pero me gustaría que mi personaje disminuya el movimiento al caminar sobre cierto terreno. Por ejemplo, si él / ella camina sobre una baldosa de arena, me gustaría que su velocidad se redujera a la mitad. No he podido resolver esto por mi cuenta, ya que todavía estoy aprendiendo. El enlace a mi código está abajo. Cualquier ayuda sería muy apreciada!

Creo que la solución vendrá dentro de estas líneas de código:

if keys[pygame.K_LEFT]:
    is_facing_left = True
    movement_x -= tile_rect.width
    mapx -= 1
if keys[pygame.K_RIGHT]:
    is_facing_left = False
    movement_x += tile_rect.width
    mapx += 1
if keys[pygame.K_UP]:
    movement_y -= tile_rect.height
    mapy -= 1
if keys[pygame.K_DOWN]:
    movement_y += tile_rect.height
    mapy += 1

if mapx < 0:
    mapx = 0
    movement_x = 0
if mapx > world.get_width()-1 - map_tile_width:
    mapx = world.get_width()-1 - map_tile_width
    movement_x = 0
if mapy < 0:
    mapy = 0
    movement_y = 0
if mapy > world.get_height()-1 - map_tile_height:
    mapy = world.get_height()-1 - map_tile_height
    movement_y = 0

El código completo está aquí si desea verlo:

https: //github.com/DanPatWils/AdventureGame/blob/master/Almos

Respuestas a la pregunta(1)

Su respuesta a la pregunta