Python中的函数(pygame)
如果这是一个简单的修复,请提前道歉(我对编程比较陌生)。我正在创建一个python游戏(使用pygame),它将包含许多图像。我目前正在使用以下代码根据屏幕分辨率导入和缩放图片:Python中的函数(pygame),python,image,function,pygame,Python,Image,Function,Pygame,如果这是一个简单的修复,请提前道歉(我对编程比较陌生)。我正在创建一个python游戏(使用pygame),它将包含许多图像。我目前正在使用以下代码根据屏幕分辨率导入和缩放图片: pygame.init() WINDOW= pygame.display.Info() # size of window's width in pixels WINDOWW = WINDOW.current_w WINDOWH = WINDOW.current_h size = 1920/WINDOWW Credit
pygame.init()
WINDOW= pygame.display.Info() # size of window's width in pixels
WINDOWW = WINDOW.current_w
WINDOWH = WINDOW.current_h
size = 1920/WINDOWW
CreditsL = pygame.image.load ('TEXT\Credits.png')
Creditsrect= CreditsL.get_rect()
Credits = pygame.transform.scale(CreditsL, (int(Creditsrect.w/size), int(Creditsrect.h/size)))
由于我必须导入大量的图像,我想知道如何制作一个导入和缩放图像的功能,而不是复制和粘贴
提前感谢将当前代码行包装成函数并调用它非常容易:
def importer(path):
CreditsL = pygame.image.load(path)
Creditsrect = CreditsL.get_rect()
return pygame.transform.scale(CreditsL,
(int(Creditsrect.w/size),
int(Creditsrect.h/size)))
Credits = importer('TEXT\Credits.png')
如果要避免为每个图像复制粘贴最后一行,请使用[(名称、路径),]元组列表并从中生成dict:
SOURCES = [
("credit", 'TEXT\Credits.png'),
("something", 'TEXT\whatever.png'),
# etc
]
IMAGES = dict((name, resize(path)) for name, path in SOURCES)
然后使用调整大小的“信用”图像:
根据我的理解,通过pygame缩放图像并不是一个好办法。使用一个简单的照片编辑器(如果有必要的话可以画画!)来相应地缩放图像。计算机要做的工作更多。你的电脑工作越多,游戏的效率就越低!内存现在可能不是问题,但最好进行良好的实践,并使代码更易于查看。小心使用
'TEXT\Credits.png'
。反斜杠通常表示转义序列'TEXT\Credits.png'
恰好可以工作,但是'TEXT\title.png'
并不表示您可能期望的文件名。要避免这种情况,请使用前斜杠'TEXT/Credits.png'
或原始字符串r'TEXT\Credits.png'
。谢谢,这正是我需要的。
SOURCES = [
("credit", 'TEXT\Credits.png'),
("something", 'TEXT\whatever.png'),
# etc
]
IMAGES = dict((name, resize(path)) for name, path in SOURCES)
do_something_with(IMAGES["credit"])