我已经阅读了我能找到的所有内容,并查看了 pyglet 上的许多游戏循环示例,但我仍然不确定它是如何工作的或到底发生了什么。
(这些是我读过的文章......)
http://www.pyglet.org/doc/programming_guide/the_application_event_loop.html
http://www.pyglet.org/doc/api/toc-pyglet.event-module.html
我知道基本结构是这样的(这只是一个例子):
INITIALIZE GAME WINDOW
game_window = pyglet.window.Window(800, 600)
ATTACH EVENT HANDLERS
@game_window.event
def on_draw():
game_window.clear()
player_sprite.draw()
START PYGLET
pyglet.app.run()
我知道这一切都在实践中有效,但我不太明白。而且我觉得除非我很好地掌握了机制,否则我将无法充分利用 pyglet 的潜力。
所以你告诉 pyglet 运行并且......它找到具有事件的对象(game_window)并且它以某种方式找到并调用你附加处理程序的那些函数?它如何知道在哪个范围/命名空间中找到它们?它是否只是扫描您的整个代码,直到找到您放置事件处理程序的位置?它会绕过它们吗?它如何知道在哪里开始和停止循环?它是如何工作的???
谢谢!