'平台'对象没有属性' add_internal'

时间:2017-11-19 14:11:41

标签: python pygame

我再次在Pygame项目中偶然发现了一个问题。在尝试为我的平台创建一个组,这将有助于编码环境冲突,我收到错误:

'Platform' object has no attribute 'add_internal'

我创建了一个小组:

platforms=pygame.sprite.Group()
ground=GameClass.Platform(0,500,500,40)
platforms.add(ground)

地面变量被分配到班级'平台'在单独的文件' GameClass':

class Platform:
    def __init__(self,x,y,w,h):
        self._x=x
        self._y=y
        self._w=w
        self._h=h

        pygame.draw.rect(display,BLACK,[self._x,self._y,self._w,self._h])

组创建代码位于游戏循环之上,因此它只运行一次。

谢谢, 链路

2 个答案:

答案 0 :(得分:1)

您只能将pygame.sprite.Sprite子类的实例添加到pygame.sprite.Group。您还必须调用超类的__init__方法:super().__init__()(或Python 2中的super(Platform, self).__init__())。

class Platform(pygame.sprite.Sprite):
    def __init__(self,x,y,w,h):
        super().__init__()

答案 1 :(得分:0)

错误说明了 - 您的frontend app *:8080 acl tool_tomcat path_beg /tool use_backend tool_app_backend if tool_tomcat acl approval_tomcat path_beg /approval use_backend apr_app_backend if approval_tomcat 类缺少Sprite class中定义的Platform方法。

您需要将add_internal类设为Platform子类:Sprite