基本问题:
在使用Pygame开发设计小游戏程序时,基本开发框架是引入pygame,初始化、进行无限循环(监听事件、对事件进行响应、刷新屏幕)。
如果你要实现网络联机游戏,那还需要一个无限循环:就是不断的监听接收数据,并根据接收的数据进行响应。
而这两个循环如果不使用Thread线程,将导致程序进行无法响应状态,无法正常运行。
解决方法:
首先单独写一个循环接收数据的函数,函数并对收的数据进行处理响应。确保游戏双方游戏屏幕的的同步刷新。
第二步,建立一个线程,实现数据接收函数的调用。
第三步,并将线程在游戏开始之前运行(.start())
第四步,运行游戏的主程序,进行无限循环(监听事件、对事件进行响应、刷新屏幕),实现游戏双方的同步效果。
部分代码:
连接服务器函数:
def __init__(self):
"""定义基数连接参数"""
filename='serveradd.txt'
with open(filename,encoding='utf-8') as f: #读取文件中地址和端口号
serveradd = f.readlines()
self.HOST = (serveradd[0].rstrip())
self.PORT = int(serveradd[1])
self.ADDR