[英]Pyglet: 'str' object has no attribute 'audio_format' (python)
[英]Pyglet Subclass object has no attribute
我正在用pyglet開發游戲,這是第一次,盡管通常我會使用pygame
我試圖在pyglet中子類化。
class menu(pyglet.sprite.Sprite):
def __init(self, *args, **kwargs):
super(menu, self).__init__(self, *args, **kwargs)
self.labels = {}
class pause_menu(menu):
def __init__(self, *args, **kwargs):
super(pause_menu, self).__init__(self, *args, **kwargs)
self.labels['resume'] = pyglet.text.Label('Resume Game', font_name='Times New Roman', font_size=36, x=window.main.width//2, y=window.main.height//2)
我收到此錯誤
File "C:\Python33\lib\site-packages\pyglet\sprite.py", line 225, in __init__
self._texture = img.get_texture()
AttributeError: 'pause_menu' object has no attribute 'get_texture' 'get_texture'.
到底是怎么回事? 我使用超級錯誤嗎?
順便說一句:該類正在從另一個模塊調用
pause_menu = menu.pause_menu(x=0, y=0, batch=menu_batch, img=None)
您調用父級__init__
錯誤; 使用super(menu, self).__init__(*args, **kwargs)
。 該方法由super()
綁定 。
您還誤命名了menu.__init__
,結尾缺少雙下划線。
class menu(pyglet.sprite.Sprite):
def __init__(self, *args, **kwargs):
super(menu, self).__init__(*args, **kwargs)
self.labels = {}
class pause_menu(menu):
def __init__(self, *args, **kwargs):
super(pause_menu, self).__init__(*args, **kwargs)
self.labels['resume'] = pyglet.text.Label('Resume Game', font_name='Times New Roman', font_size=36, x=window.main.width//2, y=window.main.height//2)
由於您顯式地傳入了self
,因此pyglet.sprite.Sprite.__init__()
使用兩個位置參數調用pyglet.sprite.Sprite.__init__()
,這兩個位置參數均引用self
。
結果,第二個self
參數被視為img
參數,而pyglet
嘗試對其調用AbstractImage.get_texture()
方法 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.