Python pygame

PyGame游戏的基本结构

最简单的PyGame代码:

执行之后显示一个黑黑的窗口:

Python pygame

画一个方块

pygame.draw.rect是绘制长方形函数。第一个参数指定要在哪个surface上画(win);第二个参数指定颜色,RGB格式;第三个参数指定绘制的位置,x,y代表左上角坐标,另外两个代表长方体长和宽。

Python pygame

按键交互

下面实现使用空格键改变方块的颜色。

Python pygame

上面用到了pygame.KEYDOWN,和它对应的是KEYUP事件类型。pygame.K_****代表键盘上的按键,你可以用dir函数查看支持的按键:

用箭头键移动方块

还有一种处理键盘按键的方式:使用pygame.key.get_pressed()函数获得所有按键的状态,它返回一个0、1的大数组,分别代表每一个按键的状态,1代表该按键按下,0代表该按键没有按下。

Python pygame

上面有两个问题需要解决:

  1. 每次画新方块,前一个方块并不会消失,它还留在屏幕上。
  2. 它移动的太快,因为死循环里没有任何延时。

对于第一问题,你可以在绘制方块之前重新设置屏幕(黑色),Surface里有一个方法fill:

对于第二个问题,是因为屏幕刷新太快,一般游戏的刷新(fps)为每秒钟60次。你可以自己手动写延迟代码,也可以用PyGame里的Clock类:

完整代码:

Python pygame