gpt4 book ai didi

python - pyglet 游戏循环到底是如何工作的?

转载 作者:太空宇宙 更新时间:2023-11-03 18:57:25 39 4
gpt4 key购买 nike

我已经阅读了我能找到的所有内容,并查看了 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)并且它以某种方式找到并调用你附加处理程序的那些函数?它如何知道在哪个范围/命名空间中找到它们?它是否只是扫描整个代码,直到找到放置事件处理程序的位置?它会在它们上方循环吗?它如何知道从哪里开始和停止循环?它是如何工作的???

谢谢!

最佳答案

我们来玩吧:

class Window:
def __init__(self, x, y):
global app
app = self
def event(self, func):
self.what_todo = func
def run(self):
self.what_todo()

>>> game_window = Window(800, 600)
>>>
>>> @game_window.event
... def on_draw():
... print("I am drawing!")
...
>>> app.run()
I am drawing!
>>>

当然,他们的做法可能有点不同,但我希望您能了解基本的想法。

关于python - pyglet 游戏循环到底是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16974611/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com