当任何玩家进行pos时,将个人信息返回给每个玩家

2022-12-05 01:40:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用HTML5flaskflask_socketio(webSocket的flask扩展)来制作一个简单的游戏。我可以将所有播放器连接到服务器,并向每个播放器返回信息(这是最简单的部分)。我的问题是,当一个玩家修改某些东西时,我如何将个人信息返回给每个玩家(不是所有玩家都有相同的信息)?这是可能的吗


Tags: 服务器信息游戏flask玩家播放器html5websocketsocketio个人信息
1条回答
网友
1楼 · 发布于 2022-12-05 01:40:27

大概您的服务器中有一些状态,允许您获取玩家列表,对吗

您需要将socket.io会话id添加到该状态,以便知道如何为每个播放器寻址。因此,要向每个玩家发送更新,您只需对其进行迭代并向其发送数据。例如,类似这样的内容:

for player in all_the_players.keys():
    emit('player_info', all_the_players[player], room=all_the_players[player]['sid'])

在这个例子中,我有一个全局dict,其中键是播放器名称,值是带有播放器特定数据的dict。播放器数据中的一项是sid,Socket.IO使用它将消息定向到特定的客户端