Ваша логика для проверки того, находится ли персонаж в препятствии, неверна:
if ((playerdino.x+55 > crator1loc) and (playerdino.x>crator1loc+40)):
равно
if ((playerdino.x > crator1loc-55) and (playerdino.x>crator1loc+40)):
Таким образом, playerdino.x
всегда больше crator1loc-55
.
Вы можете изменить его на
if ((playerdino.x > crator1loc-55) and (playerdino.x<crator1loc+40)):
Кроме того, в вашем коде вы вызываете dino.updatedino(speed, win)
как dino.updatedino(playerdino, -6, win)
. Это должно быть playerdino.updatedino(-6, win)
.