Pygame错误,未显示缩放图像

2024-06-08 03:03:12 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我试着在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 提前谢谢各位! https://www.dropbox.com/s/38cy7a15jynes7c/torch.png

好吧,根据评论我没有画精灵,那我该怎么画呢?就像我说的,我是全新的,抱歉。你知道吗


Tags: rectimageselfeventgetinitsystorch
1条回答
网友
1楼 · 发布于 2024-06-08 03:03:12

从注释中可以看出,您的问题并不是缩放失败,而是代码实际上没有在任何地方显示您的sprite(缩放或其他)。你知道吗

如果是这样的话,那是因为你从来没有告诉皮加梅这么做。仅仅创建一个精灵实际上并不能绘制它。你知道吗

你真的应该通读这些教程,看看几个示例程序,而不是仅仅从参考文档中找出什么是必要的,什么不是必要的,什么时候,以什么顺序。你知道吗

基本思想是将Sprite对象放入Group对象中,然后在事件循环或帧速率循环中的某个地方,对每个Group调用draw方法,将window传递给它。在^{}的概述中对此进行了解释。你知道吗

在您的程序中,由于您实际上从不更新任何内容,只需呈现一个静态显示,然后flip它并永远等待按键,因此您应该能够只draw一次:

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

在许多类型的游戏中,将这样的静态对象add本身添加到构造函数中的Group是有意义的,反之亦然,在一些游戏中,甚至可以为静态对象创建一个特殊的组draw本身进行构造。虽然这并不常见。再看一遍例子。如果您转到^{}文档并单击“搜索示例”,它将给出50个使用该方法的示例程序,您可以了解它们的组织方式。但是首先,我们来看看tutorials中真正基本的例子。你知道吗

相关问题 更多 >

    热门问题