使用 pygame 缩放图像的类

问题描述 投票:0回答:1

我正在尝试为图像编写一个类,可以相应地放大或缩小它们,但我在尝试为此编写代码时遇到了麻烦。

我正在尝试使用网站上的此页面来提供帮助,但是那里正在讨论的很多内容都超出了我的想象,所以我不知道到底该怎么做: 如何在 Pygame 中更改图像大小?

此刻,我一直在试图弄清楚为什么我不断收到此错误消息,但我不知道在哪里、如何或为什么需要定义中心:

#Error
File "I:\folder\file.py", line 139, in __init__
    self.rect = self.image.get_rect(center = center)
NameError: global name 'center' is not defined


#Here is the class and function I'm trying to use:

class ScaledSprite(pg.sprite.Sprite):
    def __init__(self, centerpoint, image):
        super().__init__()
        self.originalimage = image
        self.image = image
        self.rect = self.image.get_rect(center = center)
        self.mode = 1
        self.grow = 0

    def update(self):
        if self.grow > 100:
            self.mode = -1
        if self.grow < 1:
            self.mode = 1
        self.grow += 1 * self.mode
    
        originalx, orig_y = self.original_image.get_size()
        sizex = originalx + round(self.grow)
        sizey = originaly + round(self.grow)
        self.image = pg.transform.scale(self.originalimage, (sizex, sizey))
        self.rect = self.image.get_rect(center = self.rect.center)


#Here is how I create an instance
sprite = ScaledSprite(screen.get_rect().center, pg.image.load("Logo.png"))

任何有关此代码的帮助或对图像缩放进行编程的替代方法都将非常出色,我必须提到,我对编程相对较新,因此任何一般帮助将不胜感激! :)

python image class pygame scaling
1个回答
0
投票

没关系,我找到了一种更简单的缩放图像的方法: 基本上,我只是使用“pygame.transform.scale()”输入“((image_to_be_scaled),(X_length, Y_length))”,并将其存储在原始变量所在的同一变量中。

#From my code:
LOGO = pg.transform.scale(LOGO, (500, 300))

归功于 skrx:如何在 Pygame 中更改图像大小? :)

© www.soinside.com 2019 - 2024. All rights reserved.