最近学Python,根据Eric Matthes的《Python编程从入门到实践》,实现了书中的项目1-外星人入侵,并生成了Windows10下的可执行exe文件。此处提一下,虽然书中的代码逻辑没有任何问题,但由于某种原因,飞船移动的速度会是一次右键,移动多个像素点的情况(本来只应该移动一个像素点),经过一番分析,觉得是由于运行程序时响应按键按下没问题,但响应按键松开会略有延迟,结合各处资料并不停试探,找到一个比较理想的办法,我觉得此办法可以用来解决类似的问题,具体做法为:
在响应按键松开的函数里添加
pygame.time.delay(10)
pygame相当于Python一个游戏库,delay是函数,10是时间,单位是ms。
在总运行函数里添加
time.sleep(0.015)
time需要导入time模块,即在使用time的文件开始添加
import time
time的时间单位应该为 s
根据分析,导致之前问题的原因可能是屏幕刷新了很多遍,但按键松开还没有得到响应。此方法仅提供一个思路。