如何将pyglet与Twisted / Asyncio集成?

问题描述

如何将Twisted或Asyncio集成Python-Pyglet游戏?

我本来要问一个更笼统的问题,例如“如何将网络添加到Python-Pyglet游戏中?”,但是无论如何,在进行任何类型的网络搜索时,“所有道路都会导致Twisted”。但是,Pyglet和Twisted都有自己的事件循环,尚不清楚如何集成它们。除了找到“使用扭曲”之外,我没有找到其他答案。

Twisted确实集成了一个库列表,包括WxPython之类的GUI库,但Pyglet不在列表中。我读过一篇文章,说Pyglet将与Twisted集成-从2008年开始,所以我没有屏息。

一个pyglet-twisted库,但在Github上已有5年的历史了。没有版本信息,但是示例代码具有Python-2打印语句,因此我猜测它已经过时了。 Using Pyglet and Twisted together

与Asyncio相同,我也曾看过-它具有自己的事件循环。尽管Pyglet文档确实提供了有关执行自定义事件循环的一些信息,但我不确定它与其他事件的配合情况如何。如果可行的话,我真的更喜欢使用Asyncio。

解决方法

通过基于pigtwist编写代码并将Py2转换为Py3语法,可以快速获胜。看起来并不多。还有一个crochet程序包在其自己的线程中运行twisted,您可以在其上运行网络堆栈。我还发现了this example,它使用了协同迭代器方法。

希望pyglet可以将asyncio合并到自身中,因为它是一个纯Python库。也许要向团队出票?