在我在Pyglet上看到的所有Web上的教程中,看起来他们中的任何一个都没有使用类来包含pyglet.window.Window实例.例如,大多数教程似乎都是这样的
import pyglet
game_window = pyglet.window.Window()
@game_window.event
def on_draw():
#dostuff
while __name__ == "__main__":
pyglet.app.run()
我无法将此代码重组为一个类.我的代码是打算这样做的
__author__ = 'Anish'
导入pyglet
来自pyglet.gl import *
来自董事会进口局
class Frontend:
def __init__(self,xs, ys):
self.GameInstance = Board(xs,ys)
self.GameWindow = pyglet.window.Window(width=512, height=512,visible=False)
@GameWindow.event
def on_draw(self):
self.GameWindow.clear()
f = Frontend()
当我运行此代码时,我收到以下错误
Traceback (most recent call last):
File "C:/Users/PycharmProjects/Nothing/2048/Frontend.py", line 7, in
class Frontend:
File "C:/Users/PycharmProjects/Nothing/2048/Frontend.py", line 13, in Frontend
@GameWindow.event
NameError: name 'GameWindow' is not defined
当我用“@ self.GameWindow.event”替换“@ GameWindow.event”以尝试解决NameError时我得到
Traceback (most recent call last):
File "C:/Users/PycharmProjects/Nothing/2048/Frontend.py", line 7, in
class Frontend:
File "C:/Users/PycharmProjects/Nothing/2048/Frontend.py", line 13, in Frontend
@self.GameWindow.event
NameError: name 'self' is not defined
我所期待的.但是,我不确定为什么这段代码不起作用 – 有人可以解释为什么以及如何修复它?