#python #pygame
Вопрос:
Я пытаюсь создать простую игру, в которой требуются блоки, и я определил координаты блоков в списке, содержащем определенные изображения, и других блоков, содержащих другие изображения.
Поэтому я отображал все изображения относительно главного окна, созданного
self.master_window = pygame.display.set_mode((width, height))
И я создаю форму изображений (0,0) self.master_window
.
Но теперь мне нужно дать немного черного пространства вверх и вниз для этих изображений, содержащих блоки, поэтому мне нужно переместить все блоки на 100 пикселей вниз, но я не могу переопределить все координаты (и я не могу использовать некоторые специальные методы, такие как добавление 100 к каждому y блока в списке).
Поэтому я думаю, что если бы я мог создать подобную поверхность self.master_window
и разместить на ней все так же, как я делал в self.master_window
, а затем разместить эту поверхность в нужной мне координате в главном окне.
Так есть ли какой-нибудь способ сделать это, потому что я пробовал pygame.Rect
как поверхность, но, похоже, это не работает.
Извините за то, что в моем посте так мало кода, так как я думаю, что это основной вопрос, и для него не требуется так много кода.
Любая помощь будет признательна.
Ответ №1:
Я пробовал
pygame.Rect
в качестве поверхности:
Вам нужно создать pygame.Surface
объект размером с мир:
self.draw_surface = pygame.display.Surface((w, h))
Нарисуйте все объекты на этой поверхности и, наконец blit
, на окне mater:
self.master_window.blit(self.draw_surface, (offset_x, offset_y))
Комментарии:
1. Спасибо за ваш ответ,
pygame.display.set_mode
не сработало, но если бы я заменил его наpygame.Surface
«тогда», он работал бы отлично.2. @Aditya76 Да, конечно. Извините, проблема с копированием/вставкой.