我再次在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])
组创建代码位于游戏循环之上,因此它只运行一次。
谢谢, 链路
答案 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
。