【问题标题】:'rect' attribute missing in Python class?Python类中缺少'rect'属性?
【发布时间】:2016-04-16 16:52:26
【问题描述】:

我正在尝试使用 pygame 制作精灵,但是当我尝试运行主游戏循环时出现的错误是

AttributeError: 'Paddle' 对象没有属性 'rect'

但是,对我来说,似乎我已经使用了 self.rect = self.paddle.get_rect() 所以这应该意味着我已经初始化了它?代码如下:

import pygame

class Paddle(pygame.sprite.Sprite):
    def __init___(self, screen):
        pygame.sprite.Sprite.__init__(self)

        self.paddle = pygame.Surface((100, 40))
        self.paddle = self.paddle.convert()
        self.paddle.fill((0, 0, 0))
        self.rect = self.paddle.get_rect()
        self.rect.left = 200
        self.rect.top = 400

        self.__screen = screen
        self.__dx = 0

    def change_direction(self, xy_change):
        self.__dx = xy_change[0]

    def update(self):
        if ((self.rect.left > 0) and (self.__dx > 0)) or ((self.rect.left < self.__screen.get_width()) and (self.__dx < 0)):
            self.rect.left -= (self.__dx*5)

感谢任何帮助!

【问题讨论】:

    标签: python python-2.7 class pygame


    【解决方案1】:

    在 init 中,单词 init 后面有 3 个下划线,所以它永远不会被调用,单词 init 的两边应该有 2 个 (__init__())

    【讨论】:

      猜你喜欢
      • 2011-11-11
      • 2021-12-20
      • 2014-05-24
      • 1970-01-01
      • 1970-01-01
      • 2017-02-15
      • 2015-12-02
      • 2019-02-07
      • 2016-11-22
      相关资源
      最近更新 更多