当前位置: 首页 > 知识库问答 >
问题:

自己找不到rect?

章飞虎
2023-03-14

我有一个程序,只是为了移动图像。我试着陈述自我。rect作为load_png()调用的一部分,但它并不喜欢它。我认为这会起作用的原因是http://www.pygame.org/docs/tut/tom/games6.html他说这应该行得通:

def __init__(self, side):
            pygame.sprite.Sprite.__init__(self)
            self.image, self.rect = load_png('bat.png')
            screen = pygame.display.get_surface()
            self.area = screen.get_rect()
            self.side = side
            self.speed = 10
            self.state = "still"
            self.reinit()

这是我的代码,根据pygame自己网站上的教程,它应该可以工作:

def _init_(self):
    pygame.sprite.Sprite._init_(self)
    self.state = 'still'
    self.image =  pygame.image.load('goodGuy.png')
    self.rect = self.image.get_rect()       
    screen = pygame.display.getSurface()

它给了我这个错误:

Traceback (most recent call last):
File "C:\Python25\RPG.py", line 37, in <module>
screen.blit(screen, Guy.rect, Guy.rect)
AttributeError: 'goodGuy' object has no attribute 'rect'

如果你们需要我所有的代码,评论吹了,我会编辑它。

共有2个答案

钱志
2023-03-14

没有load_png内置到python或pyplay的函数。我想您提到的教程在某个地方手动定义了它。您需要的是pygame.image.load(filename),然后您可以在返回的Surface对象上调用get_rect()。完整的代码如下:

self.image = pygame.image.load('bat.png')
self.rect = self.image.get_rect()

第二个问题是,您已经定义了函数_init_,但是您需要双下划线:__init__

此外,您还需要将代码发布到实际发生错误的位置。

闻人业
2023-03-14

您没有定义load_png函数。

您需要先创建pygame图像对象,然后才能访问其rect属性。

self.image = pygame.image.load(file)

然后您可以使用

self.rect = self.image.get_rect()

或者,您可以根据链接的示例创建load_png函数。

 类似资料:
  • 在尝试学习如何使用storm时。我决定编译我自己的著名WordCount拓扑实例,看看它是如何实现的。代码与示例完全相同。(https://github.com/apache/storm/blob/master/examples/storm-starter/src/jvm/org/apache/storm/starter/WordCountTopology.java) 然而,每当我尝试运行jar时

  • 在从Spring Boot 2.0.3更新到2.2.4之前,我们有一些注释,如下面的示例: 在ComponentScan期间,用这个适配器注释注释的类被提取并添加到Spring上下文中。更新后,现在有。 我通读了Spring Boot2.1和2.2的发行说明以及Spring Framework 5.1和5.2的发行说明,但没有发现构造型注释的行为在这一点上发生任何变化。 当我用Spring提供的原

  • 我正在尝试定义一个Java 9模块。我定义了类似的东西: 然后,我的许多文件开始给我错误,他们找不到一些包。然后我使用了IntelliJ的自动帮助功能,并将其添加到我的模块信息中。java中有几个“requires”语句。所以它变成了这样: 现在IntelliJ显示了我所有的代码,没有错误。但当我在“Maven项目”窗口中单击“编译”(我使用Maven 3.5.3和Oracle JDK 10进行编

  • 不知何故,我无法让自动加载正常工作。我正在为phpunit使用以下引导文件。 这个的输出显示,据我所知,注册应该是正常的。 不知怎的,我犯了以下错误。 在myproj文件夹src/test/unit/-DefaultDomainEventTest中,我的文件夹结构如下所示。php-bootstrap。php示例/-NotificationCountChangedEvent。php Notifica