Я реализовал прокрутку для pygame. Это работает, но иногда, когда игрок использовал движение рывок или ходил с определенного расстояния, камера будет немного зазубрена и показывает черный фон, который не должен отображаться. Ниже приведена функция.
def camera(self):
if self.rect.right >= 500 and self.in_level.world_shift_x >= -((self.in_level.total_level_width - (Screen_Width) - 32)):
if self.vx > 0:
diff = self.rect.right - 500
self.rect.right = 500
self.in_level.shift_world_x((-diff))
elif self.rect.left <= 120 and self.in_level.world_shift_x < 0:
if self.vx < 0:
diff = 120 - self.rect.left
if diff < 5:
diff = 5
self.rect.left = 120
self.in_level.shift_world_x((diff))
if self.rect.top <= 200 and self.in_level.world_shift_y <= -((self.speed / 8)):
diffy = 200 - self.rect.top
self.rect.top = 200
self.in_level.shift_world_y(round(diffy))
elif self.rect.bottom > 400 and self.in_level.world_shift_y >= -((self.in_level.total_level_height - (Screen_Height + 32))):
diffy = self.rect.bottom - 400
self.rect.bottom = 400
self.in_level.shift_world_y(round(-diffy))
Я хочу убедиться, что уровень не будет прокручиваться, чтобы показать черный фон, который не является частью игры. Кто-нибудь может мне помочь, пожалуйста!
Редактировать: я пробовал другую форму камеры, но как только я поместил свой анимированный спрайт, все обернулось фиаско.
Это то, что я хочу исправить, если вам интересно.