Я кодирую заставку DVD на python, но у меня проблемы с получением размера окна из pygame.Я использовал Info (), get_size (), get_width () и get_height (), ни одно из которых не меняется, когда я изменяю размер окна.
Я кодирую это в Python 3.5.3, я попытался переустановитьpygame и затем я попытался переключиться на python 3.6 и установить pygame для этого, но ничего не помогло.
import pygame as p, random as r, time as t, sys
width, height = 640, 480 #Initial screen width & height
x, y, vel = 0, 0, [1, 1] #Makes coordinates and velocity
DVD = p.image.load('sprites\\w.png') #Loads a sprite
DVDRECT = DVD.get_rect() #Makes object for the sprites to be loaded onto
screen = p.display.set_mode((width, height),p.RESIZABLE) #Sets screen to resizable mode
p.display.set_caption('DVD')#Sets executable capton
p.init() #Initialize Pygame
x, y = r.randint(200, 400), r.randint(200, 400) #sets the start location
#Loads in sprites
wht = p.image.load('sprites\\w.png')
blu = p.image.load('sprites\\b.png')
pnk = p.image.load('sprites\\p2.png')
pur = p.image.load('sprites\\p.png')
grn = p.image.load('sprites\\g.png')
org = p.image.load('sprites\\o.png')
ylw = p.image.load('sprites\\y.png')
p.display.set_icon(wht)
def new_color():
"""
Function for getting random colors
"""
return r.choice([wht, blu, pnk, pur, grn, org, ylw])
while True:
print(screen.get_size())
for event in p.event.get():
if event.type == p.QUIT:
p.quit()
sys.exit()
#Makes new coordinates:
x += vel[0]
y += vel[1]
#Checks if logo hits a wall
if x >= width-29:
vel[0] = -vel[0] #Makes logo 'bounce' off wall
DVD = new_color() #Sets a new color to the logo
p.display.set_icon(DVD)
if x <= 29:
vel[0] = -vel[0]
DVD = new_color()
p.display.set_icon(DVD)
if y >= height-19:
vel[1] = -vel[1]
DVD = new_color()
p.display.set_icon(DVD)
if y <= 19:
vel[1] = -vel[1]
DVD = new_color()
p.display.set_icon(DVD)
DVDRECT.center = (x, y) #moves the logo
screen.fill((0, 0, 0)) #sets background to black
screen.blit(DVD, DVDRECT) #Updates logo
p.display.flip() #flips screen
t.sleep(1.0/80.0) #waits certian time between frames
Я ожидал, что выходные данные print (screen.get_size ()) изменятся, когда я изменю размер окна,но кортеж, который он показывает, остается (640, 480) независимо от того, что я делаю с окном.