revor escribió:tengo una pantalla de resolución 1280x1024 y m e gustaria saber si con pygame se puede crear un screen de, por ejemplo, 800x600 y que se estirara hasta ocupar la pantalla completa.
Si, se puede. Solo tienes que especificarle a la función "set_mode" que
quieres un modo de pantalla completa:
- Código: Seleccionar todo
pygame.display.set_mode((800, 600), pygame.FULLSCREEN)
el funcionamiento de la función es muy simple, imagina que tienes tu
escritorio en una resolución grande, por ejemplo 1280x1024, al ejecutar
la función, la biblioteca pygame (a traves de SDL) intenta cambiar
el modo de video de tu escritorio a 800x600 y muestra la ventana sin
decoración.
Esto suele funcionar bien en cualquier sistema. Si por algún motivo
pygame no puede seleccionar esa resolución de video, intenta con otra
parecida. Luego, cuando cierras el programa pygame vuelve al modo de
video anterior.
Ten en cuenta que pygame cuenta con una función para alternar entre
'pantalla completa' y 'ventana' dentro del programa. Esta función se
llama 'pygame.display.toggle_fullscreen', y actualmente solamente
funciona bien en sistemas GNU/Linux, no en Window ni Mac (creo).
Quisiera dejar un programa de ejemplo sobre como utilizar estas
funciones. A continuación está el código de un programa que
muestra una ventana en pantalla completa. Con la tecla 'q' puedes
cerrar el programa, y con 'f' alterna entre 'pantalla completa' y
'ventana'. Pero claro, esto último solo funciona en sistemas GNU/Linux
porque utiliza la función 'toggle_fullscreen':
- Código: Seleccionar todo
import pygame
salir = False
pygame.init()
# Define el modo pantalla completa como modo inicial.
flags = pygame.FULLSCREEN | pygame.DOUBLEBUF
screen = pygame.display.set_mode((800, 600), flags)
# Texto en pantalla
pygame.font.init()
font = pygame.font.Font(None, 50)
color = (255, 255, 255)
# Imprime en pantalla los mensajes de ayuda
msg = font.render("Pulse 'q' para salir.", 1, color)
screen.blit(msg, (20, 70))
msg = font.render("Pulse 'f' para alternar el modo de video.", 1, color)
screen.blit(msg, (20, 150))
# Muestra los cambios en pantalla
pygame.display.flip()
while not salir:
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
# Permite terminar el programa
if event.key == pygame.K_q:
salir = True
# Alterna entre 'pantalla completa' y 'ventana'.
elif event.key == pygame.K_f:
pygame.display.toggle_fullscreen()
pygame.time.wait(10)
revor escribió:Cierto... es mas, ni pulsando alt+F4 se cierra...
Ah, muy cierto. Igualmente te comento, si te llega a ocurrir nuevamente
puedes hacer lo siguiente: En GNU/Linux cuando una aplicación gráfica
se 'congela', lo que se suele hacer es ejecutar el comando 'xkill' y
seleccionar la ventana que no se puede cerrar con el puntero del mouse. Pero
cuidado, así puedes cerrar cualquier programa (funcione o no).
Otra forma de cerrar un programa si algo falla es ir a una consola
(por ejemplo ALT+CTRL+F2) y usar los comandos 'ps -ax' y 'kill'. Hay
varios tutoriales sobre como usarlos por ahí...
De todas formas uno generalmente incluye una sentencia de
código para cerrar el programa con una tecla como comenta
ominae, tener un atajo para cerrar la aplicación incluso te
ayuda a hacer pruebas mas rápidamente.
Saludos.