import pygame import sys import threading import math import websocket import json import time sin_remote = 0 th1 = None th2 = None moon_addr = "127.0.0.1" def on_open(wsapp): print("打开新连接") print("准备待命") message = { "id": "comet", "sendto": "auth", "content": "none" } wsapp.send(json.dumps(message)) def on_message(wsapp, message): global sin_remote print(f"接收到消息: {message}") if message == "-3": th1.start() sin_remote = float(message) def on_close(wsapp): print("on_close") def inet(): global sin_remote wsapp = websocket.WebSocketApp(f"ws://{moon_addr}:8765", on_open=on_open, on_message=on_message, on_close=on_close) wsapp.run_forever() def grap(): pygame.init() width, height = 628, 600 screen = pygame.display.set_mode((width, height)) pygame.display.set_caption("TEST") LOCAL_COLOR = (255, 255, 255, 64) REMOTE_COLOR = [(0, 0, 255, 128), (255, 0, 0, 128)] frequency = 0.01 # 波动频率 amplitude = 100 # 波动幅度 x = round(time.time()*1000) while True: x = round(time.time()*1000) x = x % 628 for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() #pygame.draw.rect(screen, (0, 0, 0), (x, 0, 5, height)) # 扫描线 y = height // 2 + amplitude * math.sin((x * frequency)) y_remote = height // 2 + amplitude * sin_remote pygame.draw.rect(screen, (round(time.time()*1000+120)%256,round(time.time()*1000)%256,round(time.time()*1000+60)%256), (x, int(y_remote), 4, 4)) # 远程波形 pygame.draw.rect(screen, LOCAL_COLOR, (x, int(y), 2, 2)) # 本地波形 pygame.display.flip() pygame.time.delay(10) if __name__ == "__main__": th1 = threading.Thread(target=grap) th2 = threading.Thread(target=inet) # 启动线程 th2.start()