Python Pygame错误,未显示缩放图像
所以我试图在Pygame中画一个简单的火炬图像。但问题是这个雪碧和我所有的其他雪碧都在10x10左右。所以我用比例尺实验性地画它如下: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)
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的书中学到了很多东西,我可以继续,谢谢!!