14

你好,即使你可能认为有一个类似的问题,我的问题与这个完全不同。

我正在尝试从目录加载图像,并将我的屏幕尺寸(自动)设置为作为“背景”加载的图像的尺寸。

import pygame
import sys
from pygame.locals import *

image_resources = "C:/Users/user/Desktop/Pygame App/image_resources/"

class load:
    def image(self, image):
        self.image = image
        return (image_resources + image)
    def texture(self, texture):
        self.texture = texture
        return (image_resources + texture)

bg = load().image("bg_solid_black.jpg")

pygame.init()

#screen = pygame.display.set_mode((width,height),0,32)

#background = pygame.image.load(bg).convert()

#width = background.get_width()
#height = background.get_height()

我用“load()”类加载的图像设置为变量“bg”,我想使用我加载的任何内容的大小作为“bg”来确定窗口的大小。如果你试图移动

background = pygame.image.load(bg).convert()

width = background.get_width()
height = background.get_height()

最重要的是:

screen = pygame.display.set_mode((width,height),0,32)

PyGame 返回一个错误,其中指出未设置显示模式。如果我这样做:

screen = pygame.display.set_mode((width,height),0,32)

background = pygame.image.load(bg).convert()

width = background.get_width()
height = background.get_height()

当然,这不是真的,因为没有为使用“pygame.display.set_mode()”定义变量“width”和“height”。

我似乎无法弄清楚这一点,我虽然通过OO方式解决,但我似乎无法弄清楚。有什么帮助吗?

谢谢 :)

4

2 回答 2

16

convert()在任何表面上使用之前,必须使用初始化屏幕set_mode()

您可以在之前加载图像并获取其大小,set_mode()convert()必须在初始化显示后使用,如下所示:

import pygame

pygame.init()

image = pygame.image.load("file_to_load.jpg")

print(image.get_rect().size) # you can get size

screen = pygame.display.set_mode(image.get_rect().size, 0, 32)

image = image.convert() # now you can convert 
于 2013-10-31T20:22:06.913 回答
0

我使用的代码是这样的:

import pygame
import os
import random


WIDTH = 750
HEIGHT = 600
WIN = pygame.display.set_mode((WIDTH, HEIGHT))

#Image Load
BG = pygame.image.load(os.path.join("assets", "background_space.png"))
于 2022-01-28T12:16:12.217 回答