Окно масштабирования / прокрутки Pygame - PullRequest
5 голосов
/ 16 февраля 2011

В настоящее время я работаю над проектом с Pygame и мне нужно иметь возможность просматривать часть поверхности, перемещаться, увеличивать и уменьшать и т. Д.

Может кто-нибудь порекомендовать способ достижения этого эффективно, у меня сейчас он работает в запутанном виде, но он слишком медленный и сокращает игру примерно до 1 кадра в секунду при уменьшении масштаба для просмотра всей области. (моя версия только с прокруткой и без масштабирования отлично работает без задержки)

Хотя документация pygame.transform.scroll выглядит многообещающе, но я не уверена, как правильно реализовать ее с помощью pygame.transform.scale для увеличения и уменьшения

Любая помощь приветствуется

Обновление: Я немного повозился и начал работать, масштабируя объекты и их позиции, прежде чем их ослепить. Теперь я столкнулся с проблемой того, что масштабирование выглядит неестественно из-за низкого разрешения событий колеса прокрутки пигамов, поэтому я сейчас пытаюсь добиться некоторого сглаживания.

Ответы [ 3 ]

1 голос
/ 16 февраля 2011

Я не совсем уверен, что именно вы делаете.Однако я могу сказать, что не похоже, что вы подходите к проблеме так, как это подходит к Pygame.

Мне кажется, что вы полагаетесь на алгоритмы масштабирования программного обеспечения, которые Pygame использует для масштабированиябольшая картинка (весь игровой мир) в гораздо меньших размерах.Что-нибудь подобное для больших поверхностей и каждого кадра будет сильно загружать ваш процессор.

Если масштабирование действительно важно, я бы рекомендовал заменить библиотеку с аппаратным ускорением масштабирования, т.е. pyglet .В конце концов, как часто вы видели, как игры уменьшались в дни перед графическими процессорами?Практически никогда, вот как часто.

0 голосов
/ 12 ноября 2012

Для игры, которую я никогда не заканчивал, я использовал тригонометрию, чтобы получить новые позиции рисования с помощью свободно масштабируемой и повернутой камеры (немного сложно). На самом деле это не занимало много времени, но я думаю, что более эффективно использовать другие библиотеки. Но если вам нужны примеры, просто спросите.

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

Вы можете использовать pygame с OpenGL, так как вы уже знакомы с pygame. В противном случае pyglet является аналогичной библиотекой opengl.

...