Python 如何将此代码修改为异步的?
我正在尝试使用Python和库为游戏创建一个客户端 这是我当前的代码(删除了无关的内容): 目前,我已经设法按照一些文档进行了操作,但我的游戏似乎跟不上从websocket接收到的消息,并且落后了,特别是当同时接收到多个操作时。如何更改此代码以避免发生这种情况?我本人是异步化的初学者,不太熟悉wait/async语法。非常感谢进一步的指导 编辑:我正在使用Python 3.6Python 如何将此代码修改为异步的?,python,python-3.x,asynchronous,websocket,pygame,Python,Python 3.x,Asynchronous,Websocket,Pygame,我正在尝试使用Python和库为游戏创建一个客户端 这是我当前的代码(删除了无关的内容): 目前,我已经设法按照一些文档进行了操作,但我的游戏似乎跟不上从websocket接收到的消息,并且落后了,特别是当同时接收到多个操作时。如何更改此代码以避免发生这种情况?我本人是异步化的初学者,不太熟悉wait/async语法。非常感谢进一步的指导 编辑:我正在使用Python 3.6 import pygame import websockets, asyncio from game import *
import pygame
import websockets, asyncio
from game import *
connection = websockets.connect("wss://example.com/ws")
tanklist = []
pygame.init()
screen = pygame.display.set_mode((1600, 800))
background = pygame.Surface(screen.get_size())
background = background.convert()
background.fill((50, 50, 50))
screen.blit(background, (0, 0))
pygame.display.flip()
def redraw():
n = len(tanklist)
for i in range(n):
tanklist[i].draw(screen)
m = len(tanklist[i].bullets)
for j in range(m):
tanklist[i].bullets[j].draw(screen)
pygame.display.update()
def consumer(message):
header = message[0]
data = message[1]
screen.blit(background, (0,0))
#Long block of code that decides to shoot, move, rotate, etc.
redraw()
async def tanks():
async with connection as websocket:
while 1:
message = json.loads(await websocket.recv())
print(message)
consumer(message)
asyncio.get_event_loop().run_until_complete(tanks())