你可以pygame.transform.scale
縮放圖像:
import pygame
picture = pygame.image.load(filename)
picture = pygame.transform.scale(picture, (1280, 720))
然後,您可以得到picture
邊框與
rect = picture.get_rect()
和移動與
rect = rect.move((x, y))
screen.blit(picture, rect)
的圖片,其中screen
設置的東西,如
screen = pygame.display.set_mode((1600, 900))
爲了讓您的小部件,以適應不同的屏幕尺寸, 你可以make the display resizable:
import os
import pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode((500, 500), HWSURFACE | DOUBLEBUF | RESIZABLE)
pic = pygame.image.load("image.png")
screen.blit(pygame.transform.scale(pic, (500, 500)), (0, 0))
pygame.display.flip()
while True:
pygame.event.pump()
event = pygame.event.wait()
if event.type == QUIT:
pygame.display.quit()
elif event.type == VIDEORESIZE:
screen = pygame.display.set_mode(
event.dict['size'], HWSURFACE | DOUBLEBUF | RESIZABLE)
screen.blit(pygame.transform.scale(pic, event.dict['size']), (0, 0))
pygame.display.flip()
OK我得到的,但如果背景圖像縮放比例從1600x900到1280x720,以及一個圖像從300x300到相對於1280x720-1600x900的某個按鈕,然後我該如何計算按鈕應放置在較小窗口上的位置?因爲在1280x720顯示器上明顯低於600像素比在1280x900屏幕上多,相對而言。 – Ilmiont
您的意思是如何針對不同的長寬比調整它?您必須自己計算縱橫比,並將每個尺寸值乘以其係數。 – cprn