很正常的一个pygame界面,自己写了几个按钮和事件优先级排序
但是仅仅是这样占用就有
12.7%,对于你们可能很小,但是对于一个简单的2d图形程序很大
而且pygame非全屏无法使用GPU加速,全靠cpu一己之力
通过减少重绘程度来降低CPU负担
我的按钮重绘时每一帧都在进行这些运算
重绘surface,透明度转换
所以,可以通过减少重绘来降低cpu负担
如可以将在重绘时大部分不需要变动的地方放在一个surface中,重绘时直接将字体贴上该surface即可
降低帧数,需要时才刷新
这个类似于各大手机厂的自适应刷新率,比如苹果ProMotion
逻辑其实也差不多,可以将需要刷新的组件图形放在一个draw函数中,pygame循环中等到有事件产生再进行刷新
但是这个方案对于一些需要实时刷新的游戏并不能产生多大用处,甚至没有用处
当有刷新请求时就会将全局变量的 RefreshRequest 设置为 True,此时就会进行一次更新
或者当pygame中有事件产生,就会进行一次刷新(比如鼠标的移动,点击)
感谢分享,收获很大,专门注册评论。