Форум сайта python.su
и снова здравствуйте! :)
вот еще есть проблемка с изменением размеров окна.
Вот код для наглядности:
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480), pygame.RESIZABLE)
while True:
for e in pygame.event.get():
if e.type == pygame.QUIT: exit(0)
screen.fill((255, 255, 255))
pygame.display.update()
Офлайн
> белый квадрат размером 640 * 480
(Овал, это круг вписанный в квадрат 3x4 :-)
Посмотри что будет с pygame.display.get_surface().get_size(), любопытно. Возможно потребуется ловить событие и что-то химичить ручками.
А может вообще проблема решится, если ты перейдешь на pygame.display.get_surface(), и не будешь использовать некий screen.
p.s. Вероятно при изменении разрешения, создается новый Surface, так как их размер не меняем, хотя х.з.
..bw
Отредактировано (Янв. 24, 2010 07:19:56)
Офлайн
> Вероятно при изменении разрешения, создается новый Surface
Для меня было бы проще если бы так оно и было, но нет - Surface остается старого размера.
pygame.display.get_surface().get_size() возвращает старое разрешение 640 * 480.
Но вобще я уже разобрался, действительно надо было ловить событие:
Вот пример, если вдруг кому понадобится http://www.pygame.org/wiki/WindowResizing?parent=CookBook
Благодарю за помощь.
Офлайн
У меня такая проблема - есть код, который обрабатывает событие изменения окна.
background_image_filename = 'image.jpg'
import pygame
from pygame.locals import *
from sys import exit
SCREEN_SIZE = (640, 480)
pygame.init()
screen = pygame.display.set_mode(SCREEN_SIZE, RESIZABLE, 32)
background = pygame.image.load(background_image_filename).convert()
while True:
event = pygame.event.wait()
if event.type == QUIT:
exit()
if event.type == VIDEORESIZE:
SCREEN_SIZE = event.size
screen = pygame.display.set_mode(SCREEN_SIZE, RESIZABLE, 32)
pygame.display.set_caption("Window resized to "+str(event.size))
screen_width, screen_height = SCREEN_SIZE
for y in range(0, screen_height, background.get_height()):
for x in range(0, screen_width, background.get_width()):
screen.blit(background, (x, y))
pygame.display.update()
Офлайн