关于解决python中使用pygame开发联机游戏中鼠标、键盘事件监测无限循环和数据不间断接收导致游戏无法响应问题。

基本问题:

在使用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

你可能感兴趣的:(pygame,游戏,python)