今天主要学习了pygame的相关知识。
一、pygame的基本操作
- 初始化游戏模块
pygame.init()
- 创建游戏窗口
window = pygame.display.set_mode((400,600))
补充:display.set_mode(窗口大小):创建一个窗口并且返回,窗口大小是一个元祖,里面的两个值代表宽度和高度。
- 让游戏一直运行,直到点关闭按钮才结束
flag = True
while flag:
# 获取游戏过程中产生的所有的事件
for event in pygame.event.get():
# type来判断事件的类型
if event.type == pygame.QUIT:
flag = False
二、显示图片
- 获取图片,创建图片对象
格式为:image.load(图片路径):获取本地的一张图片,返回图片对象。
image = pygame.image.load('./files/luffy4.jpg')
get_size():获取大小,返回值是一个元祖,有两个元素,分别是宽和高。
image_width,image_height = image.get_size()
- 渲染图片
blit(渲染对象,位置)
位置:坐标(x,y)值得类型是元祖,元祖有两个元素分别对应x坐标和y坐标。
window.blit(image,(0,100))
- 展示内容
pygame.display.flip()
三、形变
- 缩放(指定大小)
transform.scale(缩放对象,目标大小):将指定的对象缩放到指定的大小,会返回缩放后的对象
new_image = pygame.transform.scale(image.(400,600))
- 旋转缩放(指定缩放比例)
rotozoom(surface,angle,scale)
new_image = pygame.transform.rotozoom(image,45,0.8)
- 旋转
rotate(surface,angle)
new_image = pygame.transform.rotate(image,270)
四、显示文字
1.创建字体对象
a.创建系统的字体对象
SysFont(name,size,bold=False,italic=False)
name:字体名 size:字体大小 bold:是否加粗 italic:是否倾斜
b.创建自定义的字体对象
Font(字体文件路径,字体大小) 字体文件路径:ttf文件
a.创建系统字体
font = pygame.font.SysFont('Times', 30)
b.创建自定义字体
font = pygame.font.Font('./files/aa.ttf', 30)
2.根据字体去创建文字对象
render(text,antialias,color,background=None)
text:需要显示的文字(字符串)
antialias:是否平滑(布尔)
color:颜色
background:背景颜色
text = font.render('你好,pygame',True,(0,0,255),(255,255,0))
五、显示图形
- 画线段
line(Surface, color, start_pos, end_pos, width=1)
Surface: 画在哪儿
color:线的颜色
start_pos: 起点
end_pos:终点
width: 线宽
pygame.draw.line(window, (255, 0, 0), (50, 100), (200, 100))
- 画线段(折线)
lines(Surface, color, closed, pointlist, width=1)
Surface: 画在哪儿
color: 线的颜色
closed: 是否闭合(是否连接起点和终点)
pointlist:点对应的列表
pygame.draw.lines(window, (0, 0, 255), True, [(100, 200), (150, 120), (140, 300)])
- 画圆
circle(Surface, color, pos, radius, width=0)
Surface: 画在哪儿
color: 颜色
pos:圆心坐标
radius:半径
width: 线宽,0 -> 填充
pygame.draw.circle(window, (255, 255, 0), (200, 300), 100, 0)
- 画矩形
rect(Surface, color, Rect, width=0)
Surface:画在哪儿
color: 颜色
Rect:范围(元祖,元祖中有四个元素,分别是x,y,width,height)
pygame.draw.rect(window, (0, 255, 0), (10, 100, 50, 100))
- 画多边形
polygon(Surface, color, pointlist, width=0)
pygame.draw.polygon(window, (0, 255, 255), [(300, 50), (250, 40),(100, 50), (200, 150)])
- 画椭圆
ellipse(Surface, color, Rect, width=0)
pygame.draw.ellipse(window, (123, 200, 210), (10, 200, 150, 60))
- 画弧线
arc(Surface, color, Rect, start_angle, stop_angle, width=1)
start_angle: 0-2pi
stop_angle:
pi --- 180° 1° --- pi/180
59° = pi/180 * 59
pygame.draw.arc(window, (255, 0, 0), (200, 400, 100, 100), pi/4+pi, pi*3/4+pi, 3)