1. pygame.Color 初始化支持的格式
a. 十进制数组 :(1,2, 3)
b. 字符串 :‘red’
c. HTML格式:‘#ff0011’
2. pygame.display
have a single display active at any time.
3. Open a window on the screen
screen_width = 640
screen_height = 480
screen = pygame.display.set_mode(size=(screen_width, screen_height))
pygame.display.set_mode --> Surface
set_mode(size=(0, 0), flags=0, depth=0, display=0, vsync=0) -> Surface
4. pygame.display.flip vs pygame.display.update
flip: Update the full display Surface to the screen。没有入参
update: 优化版本,可以更新屏幕的一部分。传参为 rectangle 或 rectangle_list。
相同点:两个都返回 None
5. pygame.display.set_caption
设置标题
set_caption(title, icontitle=None) -> None
6. pygame.draw.rect --> Rect
画正方形,需要传入三个参数,第一个需要画的 Surface,第二个颜色 Color,第三个正方形尺寸位置 Rect
7. pygame.time.Clock
Clock 对象有个 tick(n) 方法,放在 while 循环中,限制每秒钟循环的执行次数,降低对 CPU 的消耗。
8. Surface 对象填充背景
surface.fill(color)
9. pygame.font.Font.render
render(text, antialias, color, background=None) -> Surface
在新的画布上显示文字
文字只能是单行,换行符不被渲染,需要自己处理
10. pygame.KEYDOWN 和 pygame.KEYUP 两个事件都包含 key 和 mod 两个属性。
pygame.KEYDOWN 还包括另外两个参数:
unicode 和 scancode
11. pygame.mixer 处理声音的模块
12. pygame.Surface
Surface((width, height), flags=0, depth=0, masks=None) -> Surface
需要指定宽度和高度,相当于一幅画
13. pygame.Surface.blit
blit(source, dest, area=None, special_flags=0) -> Rect
返回绘制的区域,只返回绘制的区域
14. pygame.Surface.fill
15. pygame.Surface.set_at
16. pygame.Surface.get_at
17. 用 pygame.image.load 加载图片后,要用 convert 方法去转化,加快速度。否则默认转化很耗时间。转化的是像素格式 ‘pixel format’
18. pygame.Rect.clamp
一个长方形嵌入到另一个中
clamp(Rect) -> Rect
19. pygame.Rect.collidepoint
检测一个点是否在长方形内
collidepoint(x, y) -> bool
collidepoint((x,y)) -> bool
20. pygame.Rect.clipline
检测一条线是否在一个长方形中,返回在的部分的坐标;完全不在返回空元组
clipline(x1, y1, x2, y2) -> ((cx1, cy1), (cx2, cy2))
clipline(x1, y1, x2, y2) -> ()
clipline((x1, y1), (x2, y2)) -> ((cx1, cy1), (cx2, cy2))
clipline((x1, y1), (x2, y2)) -> ()
clipline((x1, y1, x2, y2)) -> ((cx1, cy1), (cx2, cy2))
clipline((x1, y1, x2, y2)) -> ()
clipline(((x1, y1), (x2, y2))) -> ((cx1, cy1), (cx2, cy2))
clipline(((x1, y1), (x2, y2))) -> ()
21. Rect.move 和Rect.move_ip
move_ip 才能把图片真正移动过去
*** 22. font.Font.render
render(text, antialias, color, background=None) -> Surface
在一个新的Surface上绘制文本
(1) pygame 无法在已有的surface上绘制文本,必须新建surface然后放到已有surface上。
(2)文本中不能包含换行符,需要自己处理;如果包含,则显示为一个小正方形
(3)background 参数如果不输入,则背景是透明的,会出现已有背景叠加的情况;background参数输入后,对解析性能也有帮助。