Я создал программу, на которой мелкие плитки печатаются на экране. Плитки перепечатывают каждую итерацию моего игрового цикла. Он отлично работает, но я думаю, что это может вызвать проблемы, если я использовал больше фрагментов на более медленном компьютере. Моя идея улучшить его - сохранить все плитки как объединенные подповерхности, а не отдельные подповерхности. Таким образом, мне нужно было бы напечатать одно подповерхностное отображение на экране, противопоставляющее x многим объектам. Вот как выглядит экран. Как сохранить экран в качестве подповерхностного слоя?Сохранение отображения pygame как pygame.Subsurface
ответ
Это довольно просто осуществить. Во-первых, выполните операцию построения карты из игрового цикла и поместите ее непосредственно перед этим. Во-вторых, после того, как карта была blit (к тому, что я предполагаю, был ваш экран, но любая поверхность будет работать), просто удерживайте эту поверхность как переменную.
Пример:
map = screen.subsurface(screen.get_rect())
Затем в конце вашего игрового цикла, просто блитирования этой карты перед выводом любых других предметов.
screen.blit(map,(0,0))
screen.blit(player.image,(player.rect.x,player.rect.y))
for monster in monster_list:
screen.blit(monster.image,(monster.rect.x,monster.rect.y)) # of course if you're using sprites, it's be best to just use group.draw()
pygame.display.update()
Таким образом, все сущности оказываются поверх вашей поверхности карты.
Очень приятное решение! Но я думаю, что вам нужно использовать метод PyGames '.subsurface()', когда вы заливаете карту на поверхность основного экрана. – elegent
- 1. Скрытие отображения pygame
- 2. Сохранение спрайта в окне Pygame
- 3. pygame-Как затемнить экран
- 4. Создание окна в Pygame без отображения его
- 5. PyGame Сохранение веб-камеры, изображение разделено
- 6. Сохранение значений координат мыши в python (pygame)
- 7. pygame требует прерывания клавиатуры для отображения init
- 8. Модуль отображения Pygame init и quit
- 9. Обновление отображения все в одно время PyGame
- 10. Воспроизведение музыки с PyGame без отображения
- 11. Получение пользовательского ввода на экран в pygame и его сохранение
- 12. Сохранение NSStatusBarButton выделено во время отображения popover
- 13. Сохранение уведомлений и отображения Push в UITableView
- 14. Сохранение прозрачных пикселей через rotozoom в Pygame, Python 3
- 15. PyGame load cStringIO как изображение
- 16. сохранение данных для отображения нескольких точек зрения
- 17. Сохранение элементов для отображения в listview
- 18. Excel VBA- Сохранение значений для отображения позже
- 19. Получение прямоугольника для отображения на экране в pygame
- 20. Pygame
- 21. Загрузка pygame-игр с pygame?
- 22. Как запустить Pygame?
- 23. Pygame: Как игнорировать столкновения
- 24. как повернуть треугольник Pygame
- 25. Pygame Как отобразить переменную?
- 26. Как удалить блок (pygame)?
- 27. Как изменить значок pygame?
- 28. pygame - Как сгруппировать спрайты
- 29. Как установить pygame?
- 30. Как загрузить Pygame?
Я не уверен на 100%, что получаю то, что вы здесь говорите. Являются ли плитки статическими, но вы перерисовываете их на каждой итерации? Если это так, кажется, стыдно постоянно перерисовывать снова и снова. – oxrock
@oxrock: Плитки не двигаются. было бы намного более эффективно только перепечатывать одну большую плитку, которая была инициализирована, чтобы состоять из всех мелких плиток в начале. – JGerulskis