Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的函数(pygame)_Python_Image_Function_Pygame - Fatal编程技术网

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

如果这是一个简单的修复,请提前道歉(我对编程比较陌生)。我正在创建一个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

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"])