pygame 核心但简单的知识点,坐标系、Surface 对象、颜色与 Color 对象、Rect 对象
本系列专栏将通过不断编写游戏的方式,带你夯实 Python 知识。
本专栏追求迅速掌握 pygame 的同时,夯实 python 知识,所以一起来吧。
坐标系
在 pygame 中坐标系是传统的笛卡尔坐标系统,如下图所示,牢记这个坐标系,接下来学习就事半功倍了。
Surface 对象
简单理解 Surface 对象就是一个矩形的 2D 图像对象,在之前的博客中学习到的 pygame.display.set_mode()
返回的 Surface 对象
叫做显示对象(窗口对象,display surface),后续代码绘制到显示 Surface 对象上的任何内容,都在调用 pygame.display.update()
方法的时候,显示到窗口上。
游戏每循环一次,Surface 对象会将所有内容都绘制到 display surface 上,这在 pygame 中叫做一帧,一般在 pygame 中帧数设置为 30,即每秒运行 30 帧(30 FPS),每秒运行的帧数叫做帧速率(frame rate)。
使用的代码如下:
颜色
在 pygame 中颜色是使用 RGB 表示的,每个颜色的取值范围是 [0,255]
,不要超过该数字,超过会出现 Value Error:invalid color argument
。一般用一个元组进行表示 (0,0,0)
,这个颜色不用特别记忆,用的时候查询即可。
https://bj.96weixin.com/tools/rgbhttp://tools.jb51.net/color/select_colorhttps://tool.oschina.net/commons?type=3
颜色的透明度
在 RGB 颜色元组中,添加第四个值,即 alpha值
,案例为 (255, 0, 0)
表示红色,(255,0,0,100)
透明红色。
绘制的时候,注意透明度 Surface 对象的绘制,不要在游戏循环内部,否则会因为每次都在绘制,很快就实现完全不透明,即你的透明度失效了。
除了直接设置 alpha 通道值以外,还可以使用 s.set_alpha(128)
函数实现透明效果。
pygame.Color 对象
除了使用元组的方式进行颜色表示以外,还可以使用 Color 对象,使用的方式也非常简单,代码示例如下:
pygame.Rect 对象
在 pygame 中有两种方式表示矩形对象,即 Rect 对象,一种是用 4 个整数的元组,另一种就是用 Rect 对象。
格式为 (0,0,100,100)
, 4 个值分别是 X 坐标,Y 坐标,矩形的宽度,矩形的高度,后两者单位是像素。
除了对象的声明外,你需要掌握对象的属性。具体如下,在后续博客中,使用频率都有非常高。
对应的官方手册地址为 https://www.pygame.org/docs/ref/rect.html
版权声明: 本文为 InfoQ 作者【梦想橡皮擦】的原创文章。
原文链接:【http://xie.infoq.cn/article/6ef12a1c3e670cf4ead84a576】。文章转载请联系作者。
评论