一、pygame基本操作
1.初始化游戏模块
pygame.init()
2.创建游戏窗口
window = pygame.display.set_mode((400,600))
- display:set_mode(窗口大小):创建一个窗口并返回
- 窗口大小:是一个元祖,并且元祖需要两个值分别表示宽度和高度(单位是像素)
3.让游戏一直执行,直到点击关闭按钮才结束
while True:
# 获取游戏过程中产生的所有事件
for event in pygame.event.get():
# type来判断事件的类型
if event.type == pygame.QUIT:
exit() # 退出程序
二、显示图片以及形变
1.显示图片
a.获取图片,创建图片对象
image.load(图片地址):获取本地的一张图片,返回图片对象
image = pygame.image.load('./files/cat.jpg')
get_size():获取大小,返回值是一个元祖,有两个元素,分别是宽和高
image_width,image_height = image.get_size()
b.渲染图片(将图片贴在纸上)
blit(渲染对象,位置)
位置: 坐标(x,y)值得类型是元祖,元祖有两个元素分别对应x坐标和y坐标
window.blit(image,(0, 0))
c.展示内容
pygame.display.flip()
2.形变
a.缩放(指定大小)
transform.scale(缩放对象,目标大小:将指定的对象缩放到指定的大小
,会返回缩放后的对象)
image = pygame.transform.scale(image,(400,600))
b.旋转缩放(指定缩放比例)
transfom.rotozoom(Surface,angle,scale)
Surface:旋转缩放对象
angle:旋转的角度
scale:缩放比例
new_image = pygame.transform.rotozoom(image, 0, 1)
c.旋转
rotate(Surface,angle)
Surface:旋转缩放对象
angle:旋转的角度
三、显示文字
1.创建系统的字体对象
a.创建系统的字体对象
Sysfont(name,size,blod=False,italic=False)
name:字体名(支持系统的字体名)
size:字体大小
bold:是否加粗
italic:是否倾斜
font = pygame.font.SysFont('Times', 30)
b.创建自定义字体对象
Font(字体文件路径,字体大小)
font = pygame.font.Font('./files/aa.ttf', 30)
2.渲染文字
window.blit(text,(50,50))
3.展示内容
pygame.dispaly.flip()
四、显示图形
1.画直线
def line(Surface, color, stat_pos, end_pos, with=1)
Surface:画在哪
color:线的颜色
stat_pos:起点
end_pos:起点
width:线宽
pygame.draw.line(window,(255, 0, 0), (50,100),(200,100))
2.画线段(折线)
def lines(Surface, color, closed, pointlist with=1)
Surface:画在哪
color:线的颜色
closed:是否闭合(是否连接起点和终点)
pointlist:点对应的列表
pygame.draw.lines(window,(0,0,255),False,[(70,150),(120,170),(60,250)])
3.画圆
def circle(Surface, color, pos, radius, width=0 )
Surface:画在哪
color:颜色
pos:圆心坐标
radius:半径
width:线宽
pygame.draw.circle(window,(255,255,0),(200,300),100)
4.画矩形
def circle(Surface, color, Rect, width=0 )
Surface:画在哪
color:颜色
Rect:范围(元祖,元祖中有四个元素,分别是x,y,width,height)
pygame.draw.rect(window,(0,255,0),(0,0,50,100))
5.多边形
def polygon(Surface, color, pointlist, width=0)
pygame.draw.polygon(window,(0,0,255),[(300,0),(500,0),(400,100),(200,100)])
6.画椭圆
def ellipse(Surface, color, Rect, width=0)
pygame.draw.ellipse(window, (0,0,255), (200,400,200,100))
五、事件
事件的type:
- a.鼠标事件:
QUIT:关闭按钮被点击事件
MOUSEBUTTONDOWN:鼠标按下事件
MOUSEBUTTONUP:鼠标按下松开时对应的事件
MOUSEMOTION:鼠标移动事件
- b.键盘事件:
KEYDOWN:键盘按下
KEYUP:键盘弹起
- c.事件的pos --- 鼠标事件发生的位置(坐标)
- d.事件的key --- 键盘事件被按的键对应的编码值