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

在Pygame开发联机游戏中,由于鼠标、键盘事件监听和数据不间断接收的无限循环,可能导致游戏无法响应。解决方法是创建独立的数据接收函数并用线程执行,确保游戏循环与数据接收同步,从而避免程序卡死。通过建立socket连接,实现数据的发送和接收,并在游戏开始前启动接收数据的线程。
摘要由CSDN通过智能技术生成

基本问题:

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值