Листать спрайт в пигаме - PullRequest
       0

Листать спрайт в пигаме

2 голосов
/ 28 февраля 2020

Я новичок в Pygame и пытаюсь выучить веревки, так что извините, если это вопрос нуба. У меня есть набор спрайтов, которые я скачал с Inte rnet для тренировки, и я использую базовый c код для ходьбы, чтобы оживить ход персонажа влево и вправо. Все изображения, которые я использую, направлены вправо, поэтому я использую функцию pygame.transform.flip для поворота изображения, когда персонаж движется влево. Вот пример кода:

if self.left and not self.isJump:
        win.blit(pygame.transform.flip(self.walk[self.walkCount],True,False), (self.x,self.y))
        self.walkCount += 1
    elif self.right and not self.isJump:
        win.blit(self.walk[self.walkCount], (self.x,self.y))
        self.walkCount += 1

Проблема в том, что на изображении много пустого пространства вокруг. Изображение ниже является примером (я нарисовал границу только для того, чтобы вы могли видеть, настоящие - это прозрачные png-файлы). Когда изображение переворачивается, оно переворачивается вдоль правого края, поэтому персонаж переворачивается на другую сторону изображения. Поэтому вместо того, чтобы повернуться на месте, персонаж прыгает взад-вперед на экране. Есть ли способ справиться с этим помимо того, чтобы пройти и обрезать все пробелы во всех моих изображениях?

enter image description here

1 Ответ

2 голосов
/ 28 февраля 2020

К сожалению, обрезка пустого пространства - лучший способ действий, так как это, вероятно, вызовет проблемы столкновения позже в игре, поэтому лучше всего попытаться удалить как можно больше пустого пространства. Поверьте мне, я знаю по опыту.

Если, однако, вы сохраните пустое пространство wi sh, одним из возможных решений будет заставить сам спрайт переместиться на заданное расстояние, соответствующее объему удаляемого пустого пространства. ощущение того, что оно внезапно подпрыгивает, но, как уже было сказано, это вызовет проблемы при столкновении

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...