Полноэкранный режим в pygame полностью черный. ⇐ Python

Программы на Python
Anonymous
Полноэкранный режим в pygame полностью черный.

Сообщение Anonymous »

У меня возникли проблемы с полноэкранным режимом pygame. Вот код, который просто рисует синее окно, и, нажав R, мы можем переключаться между синим и фиолетовым. Затем мы также можем переключаться между полноэкранным и оконным режимами, используя F или G. F реализован явно, а G использует метод toggle_fullscreen().

Код: Выделить всё

import pygame, sys
from pygame.locals import *

#Initializes pygame
pygame.init()

#Defines the Clock object
clock = pygame.time.Clock()

#Just draws a blue screen
size = (960, 540)
blue = (0,0,100)
purp = (100,0,100)
is_blue = True
display_surf = pygame.display.set_mode(size, RESIZABLE)
display_surf.fill(blue)

mainLoop = True
is_fullscreen = False

#Mainloop
while mainLoop:

dt = clock.tick(12)

for event in pygame.event.get():
if event.type == pygame.QUIT:
mainLoop = False
if event.type == pygame.KEYDOWN:
#Single key pressed
if event.key == K_f:
#Toggles fullscreen
is_fullscreen = not is_fullscreen
old_surface = display_surf
setmode = FULLSCREEN if is_fullscreen else RESIZABLE
display_surf = pygame.display.set_mode(size, setmode)
display_surf.blit(old_surface, (0,0))
del old_surface
if event.key == K_q:
#Quits the app
mainLoop = False
if event.key == K_r:
#Redraws the blue or purple
print("Trying to flip colors")
display_surf.fill(purp if is_blue else blue)
is_blue = not is_blue
if event.key == K_g:
#Toggles fullscreen with the dedicated method
is_fullscreen = not is_fullscreen
pygame.display.toggle_fullscreen()

pygame.display.update()

pygame.quit()

Я использую Ubuntu 18.04 и использую Python 3.6.8. Вот мои наблюдения:
  • Использование pygame 2.0.0.dev6 при переходе в полноэкранный режим с помощью F или < kbd>G на экране происходит следующее:


    мигает несколько раз
  • переходит в задание панель в виде свернутого значка
  • если я нажму на значок, экран мигнет еще несколько раз и, наконец, мы перейдем в полноэкранный режим.
  • проблема< /strong>: экран полностью черный, а кнопка R не меняет цвета (но печатает сообщение)

[*]Все еще использую pygame 2.0.0.dev6. В этом случае кнопки G и F ведут себя по-разному: при переходе из полноэкранного режима в оконный с помощью G кнопка R не меняет цвета даже в оконной версии. При использовании F вместо этого работает.
[*]В версии pygame 2.0.0.dev3 кнопка G вообще не работает, а F ведет себя так же, как и раньше.


Моя главная проблема — 1.4.: полноэкранный режим полностью черный.

Теперь давайте сделаем модификацию. Измените следующую строку в коде кнопки F

Код: Выделить всё

setmode = FULLSCREEN|SCALED if is_fullscreen else RESIZABLE    #FULLSCREEN -> FULLSCREEN|SCALED
Это полноэкранный режим с текущим разрешением экрана, а не с тем, которое я указал вверху. Теперь проблемы 1.1., 1.2 и 1.3. исчезли: приложение немедленно переходит в полноэкранный режим. Но проблема 1.4. сохраняется, и, кроме того, программа больше не принимает входные данные. Если я нажму Q, он не выйдет. Для этого не требуется Alt+Tab или Alt+F4, поэтому мне приходится перезагрузить компьютер.< /п>

Подробнее здесь: https://stackoverflow.com/questions/591 ... rely-black

Вернуться в «Python»