Python Pygame错误,未显示缩放图像

Python Pygame错误,未显示缩放图像,python,image,pygame,sprite,Python,Image,Pygame,Sprite,所以我试图在Pygame中画一个简单的火炬图像。但问题是这个雪碧和我所有的其他雪碧都在10x10左右。所以我用比例尺实验性地画它如下: import pygame, sys class sprites: class torch(pygame.sprite.Sprite): def __init__(self, image_file, location): pygame.sprite.Sprite.__init__(self)

所以我试图在Pygame中画一个简单的火炬图像。但问题是这个雪碧和我所有的其他雪碧都在10x10左右。所以我用比例尺实验性地画它如下:

import pygame, sys
class sprites:
    class torch(pygame.sprite.Sprite):
        def __init__(self, image_file, location):
            pygame.sprite.Sprite.__init__(self)
            self.image = pygame.image.load(image_file)
            self.rect = self.image.get_rect()
            self.rect.left, self.rect.top = location
            self.image = pygame.transform.scale(self.image, ((100, 100)))
window = pygame.display.set_mode((300, 300))
width, height = window.get_size()
pygame.mouse.set_visible(True)
window.fill([0, 0, 0])
sprites.torch("torch.png", (50, 50))
pygame.display.flip()
while True:
    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN:
            sys.exit()
我是pygame的新手,所以我不确定我做错了什么。这个问题的另一个解决方案是,我可以将分辨率设置为100x100,但大小设置为500x500 提前谢谢各位!


好吧,根据评论我没有画精灵,那我该怎么做?就像我说的,对不起,我是全新的。

从评论中可以看出,您的问题似乎不是放大失败,而是代码实际上没有在任何地方显示您的精灵(放大或其他)

如果是这样,那是因为你从来没有告诉pygame这样做。仅仅创建一个精灵并不能真正绘制它

你真的应该通读教程,看看一些示例程序,而不是仅仅从参考文档中找出什么是必要的,什么不是必要的,什么时候,什么顺序

基本思想是将
精灵
对象放入
对象中,然后在事件循环或帧率循环中的某个位置,对每个
调用
绘制
方法,并将
窗口传递给它。在的概述中对此进行了说明

在您的程序中,由于您从未实际更新过任何内容,只需渲染一个静态显示,然后将其翻转并永远等待按键,因此您应该能够只绘制一次:

thetorch = sprites.torch("torch.png", (50, 50))
everything = pygame.sprite.Group()
everything.add(thetorch)
everything.draw(window)
pygame.display.flip()

在许多类型的游戏中,将这样的静态对象添加到构造函数中的
中是有意义的,反之亦然,在某些游戏中,甚至可以为
在构造函数中绘制自身的静态对象创建一个特殊组。虽然这并不常见。再次,浏览示例。如果你转到文档并单击“搜索示例”,它会给你50个使用该方法的示例程序,你可以了解它们是如何组织的。但是,首先,看一下中真正基本的例子。

另外,你从不将精灵绘制到窗口(或将其添加到组中或使用它做任何其他事情)。好吧,很抱歉,我看起来很愚蠢,但我对pygame完全陌生。你能为这个程序写一个补丁吗?我使用什么函数来绘制精灵?我怎样才能把它放大?@abarnert不。我希望它能达到100x100。我想我的定位太准确了。透明的?是的,它们在黑色背景下看起来是透明的,但实际上它们不是透明的。并不是说这会有不同,所以你是说这会得出尺寸比?我不确定那场争论到底在干什么。好吧,50x50的问题是我的错;我没注意。您正在以默认大小加载3x5图像,并将其放大到100x100,这应该是非常难看的,但完全可见。所以我将删除我的第一条评论。torch.draw(窗口)AttributeError:“torch”对象没有属性“draw”哦,对了,他们很久以前就拿出了个人
Sprite
drawing;想法是将
精灵
添加到
,然后在该组上调用
绘图
。让我更新答案。我从这本关于pygame的书中学到了很多东西,我可以继续,谢谢!!