首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pygame动画/事件循环和flask-socketio

Pygame动画/事件循环和flask-socketio
EN

Stack Overflow用户
提问于 2014-06-30 22:58:41
回答 1查看 1K关注 0票数 1

作为我的第一个RPi项目,我一直在开发一个树莓派供电的照相亭,它是通过用户智能手机上的web界面控制的。

展位本身有一个内置的显示屏,它有一个pygame视图,可以在拍照时提供动画向导和倒计时。它使用flask-socketio (http://flask-socketio.readthedocs.org/en/latest/)来处理客户端连接和用户通过智能手机输入的事件。

Pygame需要在应用程序的主线程上,所以我的问题是如果显示pygame视图,我不能让socketio工作。

我最初的逻辑是让socketio事件创建一个事件,如下所示:

代码语言:javascript
复制
@socketio.on('connect', namespace'/photo')
def client_connect():
    evnt = pygame.event.Event(gui.INFOEVENT, msg="client_connect")
    pygame.event.post(evnt)

然后在pygame线程中捕获此事件:

代码语言:javascript
复制
running = True
while running:
    for event in pygame.event.get():
        if (event.type is gui.INFOEVENT and event.msg == "client_connect"):
           # welcome client on photobooth screen and start guide

注意:我还没有检查它的语法,它可能是错误的。

有谁知道我是怎么做到这一点的吗?如果是这样,我的逻辑是不是已经走到一半了?

我正在努力让我的头围绕线程和队列,虽然我已经学到了一吨,但这个“有趣的”项目正在慢慢地消耗我!非常感谢您的帮助。

-Andrew

EN

回答 1

Stack Overflow用户

发布于 2014-07-10 05:07:33

最后,我找不到这个问题的答案,但我决定这样做。

我决定在我的socketio应用程序中创建一条单独的路由,我将在运行时在Raspberry Pi本身的kiosk模式浏览器中加载该路由,而不是使用单独的库在照相亭本身上创建GUI。

从那时起,我的意图是,当用户使用他们的智能手机(通过索引路由)与展位交互时,事件被激发回服务器(RPi),服务器将处理这些交互,并通过不同的名称空间将事件发送到本地图形用户界面。

这些事件可以在“本地GUI”上触发动画、过渡或倒计时等。

唯一的问题可能是性能和流畅的动画,因为界面需要运行浏览器,以及当有超过一个用户连接到展位时需要解决的问题(尽管如果两个客户端同时尝试访问摄像头,可能会出现硬件问题,但这是另一回事!)

最好的

安德鲁

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24493069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档