Как указать, где pygame создает окно игры

#python #screen #pygame

#python #экран #pygame

Вопрос:

Есть ли какой-либо способ контролировать, где pygame создает игровой экран? Кажется, что он всегда создает его в одной и той же общей области, но не в согласованном местоположении.

Комментарии:

1. Не хотите поделиться кодом, чтобы мы могли лучше оценить вашу проблему?

2. После того, как я импортирую свои модули, я запускаю этот код: games.init(screen_width = 908, screen_height = 683, fps = 60)

Ответ №1:

 import os  

os.environ['SDL_VIDEO_WINDOW_POS'] = str(position[0])   ","   str(position[1])
  

согласно http://pygame.org/wiki/FrequentlyAskedQuestions

Вы также можете просто расположить экран по центру с помощью

 import pygame, os 

os.environ['SDL_VIDEO_CENTERED'] = '1'
  

Обратите внимание, что это следует сделать перед инициализацией pygame в основном цикле. Я делаю это сразу после импорта ОС, например. И поскольку они на самом деле не являются частью pygame, вы, вероятно, можете использовать его в другом месте, хотя такие вещи, как gtk и wxpython, предоставляют свои собственные механизмы.

Комментарии:

1. Для первого кода указано, что ‘position’ не определена, а для второго кода он просто делает все, что я могу сказать.

2. Конечно. position[0] и position[1] являются заполнителями, указывающими, что там ожидается; пользовательская переменная какого-то рода. И, как сказал Нуфаль Ибрагим, если ваш оконный менеджер отказывается сотрудничать, это просто не сработает. В моем случае он отлично тестируется под gnome с compiz.

Ответ №2:

Позиционирование окон не обрабатывается клиентским приложением. Это обрабатывается оконным менеджером (metacity и т.д.).

Библиотека SDL, на которой основана PyGame, имеет несколько переменных окружения, которые можно использовать для предоставления подсказок оконному менеджеру. Это подсказки, которые WM может игнорировать, но это лучшее, что вы можете сделать.

В комментариях к здесь приведен пример.

Комментарии:

1. Хорошо, что ж, я думаю, это отвечает на мой вопрос. Я создаю игру для окончательного проекта, и я планирую добавить в меню «Пуск». Когда это произойдет, я думаю, игроку просто нужно будет изменить положение экрана, если это необходимо.

2. Или вы могли бы сделать его полноэкранным. 🙂