pygame

PyGame 学习笔记

初始化&退出

创建窗口

1
2
3
4
5
6
7
8
9
10
11
12
# 导入pygame模块
import pygame as pg
# 创建窗口
window = pg.display.set_mode((800,600))
# 设置窗口标题
pg.display.set_caption("游戏窗口")
# 填充窗口颜色
window.fill((255,0,0))
# 更新窗口显示
pg.display.update()
# 等待1000000000毫秒
pg.time.wait(1000000000)

绘图

绘制一条线

1
2
3
# 绘制一条线
pg.draw.line(window,(255,255,255),(0,0),(800,600))
pg.draw.aaline(window,(255,255,255),(100,100),(800,600))

绘制多条线

1
2
3
# 绘制多条线
points = [(50,50),(50,180),(200,100)]
pg.draw.lines(window,(255,255,255),True,points)

绘制多边形

1
2
3
# 绘制多边形
points = [(50,50),(50,180),(200,100)]
pg.draw.polygon(window,'green',points)

绘制圆

1
2
# 绘制圆
pg.draw.circle(window,'red',(100,100),50)

绘制矩形

1
2
# 绘制矩形
pg.draw.rect(window,'blue',(100,100,50,50))

绘制椭圆

1
2
# 绘制椭圆
pg.draw.ellipse(window,'yellow',(100,100,50,50))

绘制弧线

1
2
# 绘制弧线
pg.draw.arc(window,'white',(100,100,50,50),0,3.14,50)

绘制文本

1
2
3
4
5
6
# 绘制文本
font = pg.font.Font(None,36)
# 渲染文本
text = font.render("hello world",True,'white')
# 绘制文本
window.blit(text,(100,100))

处理事件

游戏主循环

1
2
3
4
5
6
7
while True:
# 处理事件
for event in pg.event.get():
# 处理退出事件
if event.type == pg.QUIT:
pg.quit()
exit()

游戏帧率

1
2
3
# 控制帧率
clock = pg.time.Clock()
clock.tick(60)

键盘事件

1
2
3
4
5
6
7
8
9
10
# 处理键盘事件
elif event.type == pg.KEYDOWN:
if event.key == pg.K_LEFT:
x-=10
elif event.key == pg.K_RIGHT:
x+=10
elif event.key == pg.K_UP:
y-=10
elif event.key == pg.K_DOWN:
y+=10
1
2
3
4
5
6
7
8
9
10
#另一种写法
keys = pg.key.get_pressed()
if keys[pg.K_LEFT]:
x-=10
elif keys[pg.K_RIGHT]:
x+=10
elif keys[pg.K_UP]:
y-=10
elif keys[pg.K_DOWN]:
y+=10
1
2
# 设置长按键盘
pg.key.set_repeat(1,16)

鼠标事件