buaa21 / summer2020

软件学院《程序设计实践》2020小学期仓库
40 stars 8 forks source link

使用pygame中编写程序时如何能将动画变得更流畅 #138

Closed TheSaint-LazareStation closed 4 years ago

TheSaint-LazareStation commented 4 years ago
    我在编写小游戏时,为了营造动态的效果,需要将每一帧(先这么叫吧)图片载入→screen.blit()→pygame.display.update() 这样才能够保证每一帧图片能够显示在屏幕上。
    但同时我也发现:
    1.如果在短时间内刷新屏幕的次数过多(我写的是 在一个设定为一秒循环60次的循环中 每循环1次 刷新5次屏幕),在运行程序的时候就会看到**屏幕不停地闪动**,十分影响感官;
    2.通过对每一帧图片进行screen.blit()→pygame.display.update()操作的循环,的确可以让每一帧图片都显示在屏幕上一次,但是显示的时间非常短,因此我希望可以**让每一帧图片在屏幕上停留的时间变得长**一些,就使用了time库里的sleep函数,但是这导致的后果是使得后续其他数据(比如分数)在屏幕上的更新也变慢了,画面就变得闪动+卡顿了... 

所以我想问问上述这些情况有没有相应的解决办法呢?

SeventhGX commented 4 years ago

一秒循环60次的循环中 每循环1次 刷新5次屏幕 这是一秒刷新300次吗?降到60的话会闪吗

TheSaint-LazareStation commented 4 years ago

嗯嗯,降到60的话效果好多了