目录
RGB颜色值与十六进制颜色码转换工具
https://www.sioe.cn/yingyong/yanse-rgb-16/
pygame按键对应
KeyASCII ASCII Common Name
K_BACKSPACE \b backspace
K_TAB \t tab
K_CLEAR clear
K_RETURN \r return
K_PAUSE pause
K_ESCAPE ^[ escape
K_SPACE space
K_EXCLAIM ! exclaim
K_QUOTEDBL " quotedbl
K_HASH # hash
K_DOLLAR $ dollar
K_AMPERSAND & ampersand
K_QUOTE quote
K_LEFTPAREN ( left parenthesis
K_RIGHTPAREN ) right parenthesis
K_ASTERISK * asterisk
K_PLUS + plus sign
K_COMMA , comma
K_MINUS - minus sign
K_PERIOD . period
K_SLASH / forward slash
K_0 0 0
K_1 1 1
K_2 2 2
K_3 3 3
K_4 4 4
K_5 5 5
K_6 6 6
K_7 7 7
K_8 8 8
K_9 9 9
K_COLON : colon
K_SEMICOLON ; semicolon
K_LESS < less-than sign
K_EQUALS = equals sign
K_GREATER > greater-than sign
K_QUESTION ? question mark
K_AT @ at
K_LEFTBRACKET [ left bracket
K_BACKSLASH \ backslash
K_RIGHTBRACKET ] right bracket
K_CARET ^ caret
K_UNDERSCORE _ underscore
K_BACKQUOTE ` grave
K_a a a
K_b b b
K_c c c
K_d d d
K_e e e
K_f f f
K_g g g
K_h h h
K_i i i
K_j j j
K_k k k
K_l l l
K_m m m
K_n n n
K_o o o
K_p p p
K_q q q
K_r r r
K_s s s
K_t t t
K_u u u
K_v v v
K_w w w
K_x x x
K_y y y
K_z z z
K_DELETE delete
K_KP0 keypad 0
K_KP1 keypad 1
K_KP2 keypad 2
K_KP3 keypad 3
K_KP4 keypad 4
K_KP5 keypad 5
K_KP6 keypad 6
K_KP7 keypad 7
K_KP8 keypad 8
K_KP9 keypad 9
K_KP_PERIOD . keypad period
K_KP_DIVIDE / keypad divide
K_KP_MULTIPLY * keypad multiply
K_KP_MINUS - keypad minus
K_KP_PLUS + keypad plus
K_KP_ENTER \r keypad enter
K_KP_EQUALS = keypad equals
K_UP up arrow
K_DOWN down arrow
K_RIGHT right arrow
K_LEFT left arrow
K_INSERT insert
K_HOME home
K_END end
K_PAGEUP page up
K_PAGEDOWN page down
K_F1 F1
K_F2 F2
K_F3 F3
K_F4 F4
K_F5 F5
K_F6 F6
K_F7 F7
K_F8 F8
K_F9 F9
K_F10 F10
K_F11 F11
K_F12 F12
K_F13 F13
K_F14 F14
K_F15 F15
K_NUMLOCK numlock
K_CAPSLOCK capslock
K_SCROLLOCK scrollock
K_RSHIFT right shift
K_LSHIFT left shift
K_RCTRL right control
K_LCTRL left control
K_RALT right alt
K_LALT left alt
K_RMETA right meta
K_LMETA left meta
K_LSUPER left Windows key
K_RSUPER right Windows key
K_MODE mode shift
K_HELP help
K_PRINT print screen
K_SYSREQ sysrq
K_BREAK break
K_MENU menu
K_POWER power
K_EURO Euro
Pygame模块之pygame.draw
本文将主要介绍Pygame的draw模块,主要内容翻译自pygame的官方文档 http://www.pygame.org/docs/ref/draw.html
pygame.draw 模块用于在Surface上绘制一些简单的图形,比如点、直线、矩形、圆、弧等。
下面这段话引自龙昌博客·Pygame学习笔记3:绘图:pygame.draw中函数的第一个参数总是一个surface,然后是颜色,再后会是一系列的坐标等。稍有些计算机绘图经验的人就会知道,计算机里的坐标,(0,0)代表左上角。而返回值是一个Rect对象,包含了绘制的领域,这样你就可以很方便的更新那个部分了。
先从整体来看pygame.draw有哪些函数:
- pygame.draw.rect: 绘制矩形
- pygame.draw.polygon: 绘制任意边数的多边形
- pygame.draw.circle: 绘制圆
- pygame.draw.ellipse: 在矩形内绘制椭圆
- pygame.draw.arc: 绘制圆弧(或者椭圆的一部分)
- pygame.draw.line: 绘制直线(线段)
- pygame.draw.lines: 从一个点列表中连续绘制直线段
- pygame.draw.aaline: 绘制一根平滑的线(反锯齿)
- pygame.draw.aalines: 绘制一系列平滑的线
大多数函数接受一个width参数表示线条(画笔)的宽度,如果该值设置为0,则表示填充整个图形。
所有的绘制函数都会尊重指定的Surface编辑区,而且会限制在这个区域内。函数的返回值是一个Rect,表示的是受影响的Surface区域。(原文:All the drawing functions respect the clip area for the Surface, and will be constrained to that area. The functions return a rectangle representing the bounding area of changed pixels.)
颜色参数通常是一个RGB三元组(R, G, B)。也可以接受RGBA形式的颜色值。
这些绘制函数会临时锁定所操作的Surface对象。
原型:pygame.draw.rect(Surface, color, Rect, width=0): return Rect
用途:在Surface上绘制矩形,第二个参数是线条(或填充)的颜色,第三个参数Rect的形式是((x, y), (width, height)),表示的是所绘制矩形的区域,其中第一个元组(x, y)表示的是该矩形左上角的坐标,第二个元组 (width, height)表示的是矩形的宽度和高度。width表示线条的粗细,单位为像素;默认值为0,表示填充矩形内部。
此外,Surface.fill 同样可以用来绘制填充矩形。
原型:pygame.draw.polygon(Surface, color, pointlist, width=0): return Rect
用途:polygon是多边形,这个函数和rect类似,除了第三个参数。顾名思义,pointlist是一个坐标点的列表,表示多边形的各个顶点。
原型:pygame.draw.circle(Surface, color, pos, radius, width=0): return Rect
用途:用于绘制圆形。第三个参数pos是圆心的位置坐标,radius指定了圆的半径。
原型:pygame.draw.ellipse(Surface, color, Rect, width=0): return Rect
用途:ellipse是椭圆形,这个函数在矩形 Rect 内部绘制一个内接椭圆。
原型:pygame.draw.arc(Surface, color, Rect, start_angle, stop_angle, width=1): return Rect
用途:绘制一段圆弧,或者其实是上面提到的椭圆的一部分。与ellipse函数相比,多了两个参数:start_angle是该段圆弧的起始角度,stop_angle是终止角度。这两个都是用弧度制来表示的,而原点就是矩形Rect的中心。在Rect平面上建立坐标系,原点是中心,简单示意图如下。0弧度的起点是右边的中点处。
原型:pygame.draw.line(Surface, color, start_pos, end_pos, width=1): return Rect
用途:绘制直线段,start_pos 和 end_pos 分别表示起始点和终止点,用坐标表示。width为线条宽度,默认为1. 线条两端自然结束,没有明显的端点(如实心黑点)。
原型:pygame.draw.lines(Surface, color, closed, pointlist, width=1): return Rect
用途:用于绘制一系列直线段。closed是一个布尔变量,如果closed为真,那么表示需要把第一点和最后一点连接起来。这些点来自pointlist,一个包含坐标点的列表。这个函数不会绘制线条的端点,也没有斜角连接(miter joints),而且角度小和线条粗的连线看起来会有点奇怪( Lines with sharp corners and wide line widths can have improper looking corners.)。
原型:pygame.draw.aaline(Surface, color, startpos, endpos, blend=1): return Rect
用途:绘制一条平滑的(消除锯齿)直线段。
原型:pygame.draw.aalines(Surface, color, closed, pointlist, blend=1): return Rect
用途:绘制连续的抗锯齿线段。该函数还有上面的aaline的用法和前两个类似。