Интерфейс перетаскивания просто невозможен в Pygame? - PullRequest
0 голосов
/ 18 сентября 2011

Я создаю простую RPG с использованием Pygame и хотел бы реализовать инвентарь перетаскивания. Тем не менее, даже если учесть блики на отдельной поверхности, кажется, что весь экран придется пересчитывать каждый раз, когда пользователь тащит элемент вокруг. Было бы лучше разрешить ограниченный диапазон движения или просто невозможно реализовать такой интерфейс?

Ответы [ 2 ]

3 голосов
/ 18 сентября 2011

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

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

Действительно простой способ получить подобный эффект - это захватить экран с самого начала.перетаскивания на поверхность, а затем разбить, что каждый кадр вместо всей игры.Это, очевидно, имеет смысл только в игре, где перетаскивание также означает, что остальная часть игры фактически приостановлена.

0 голосов
/ 22 сентября 2011

На pygame.org есть много примеров GUI, а также библиотеки для GUI.

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