一、基本功能
1.初始化游戏模块
pygame.init()
2.新建游戏窗口
set_mode(窗口大小)
窗口大小:对应的值是一个元组,并且元组中需要两个值分别表示宽度和高度(width,height)
宽度和高度的单位是像素
display.set_mode():创建一个窗口并且返回
window = pygame.display.set_mode((600,400))
3.给窗口填充颜色
fill(颜色)
颜色:计算机三原色(红,绿,蓝):每个颜色对应的值的范围是0~255
可以通过改变不同颜色的值调配出不同的颜色,颜色值是一个元组,分别代表红绿蓝(RGB)
window.fill((255,255,255))
4.让游戏一直运行,直到点关闭按钮才结束
显示图片
#a.pygame.image.load(filename)获取本地图片,返回图片对象
hero = pygame.image.load('./feiji/hero.gif')
#b.渲染图片(将图片花在纸上)
'''
blit(渲染对象,位置)方法
位置:坐标(x,y),值的类型是元组,元组有两个元素,分别对应x坐标和y
左上角为(0,0),向下是y坐标及高度逐渐增大,向右是x坐标及宽度不断增大
'''
# window.blit(hero,(250,250))
#c.展示内容(将纸帖在画框上)
# pygame.display.flip()
'''
获取图片的宽和高
hero.get_size()返回值以宽和高的元组
'''
list_image =[pygame.image.load('./feiji/hero_blowup_n1.png'),pygame.image.load('./feiji/hero_blowup_n2.png'),pygame.image.load('./feiji/hero_blowup_n3.png'),pygame.image.load('./feiji/hero_blowup_n4.png')]
hero_width,hero_height = hero.get_size()
window.blit(hero, (((600 - hero_width)/2), ((400 - hero_height)/2)))
pygame.display.flip()
sleep(0.16)
window.fill((255, 255, 255))
形变
a.缩放(指定大小)
transform.scale(缩放对象,目标大小):将指定对象缩放到指定的大小,会返回缩放后的对象
b.缩放(指定缩放比例)
transform.rotozoom(Surface,angle,scale)
Surface:旋转缩放对象
angle:旋转的角度
scale:缩放比例
c.旋转
rotate(Surface,angle)
Surface:旋转对象
angle:旋转角度
new_hero = pygame.transform.scale(hero,(200,100))
window.blit(new_hero,(600-hero_width,400-hero_height))
pygame.display.update()
new_hero = pygame.transform.rotozoom(hero,180,0.5)
window.blit(new_hero,(0,0))
pygame.display.update()
二、文字处理
a.创建系统的字体对象
pygame.font.SysFont(name,size,bold=False,italic=False)
name:字体名(系统支持的字体名)
size:字体大小
bold:是否加粗
italic:是否倾斜
b.创建自定义的字体对象
pygame.font.Font(自定义字体文件路径,字体大小)
font = pygame.font.Font(name,size)
字体文件路径:ttf文件
'''
font = pygame.font.Font('./font_01/aa.ttf', 30)
image = pygame.image.load('./feiji/enemy2.png')
image_width,image_height = image.get_size()
x,y=(((400-image_width)/2),((400-image_height))/2)
window.blit(image,(x,y))
# font = pygame.font.SysFont('Times',30)
#根据字体去创建文字对象
render(text,antialias,color)
text:需要显示的文字
antialias:是否平滑(布尔)
color:颜色
background:背景颜色元组(r,g,b)
'''
text = font.render('你好,世界',True,(0,0,255),(0,255,255))
font_width,font_height=text.get_size()
#渲染文字
window.blit(text,(((x+(image_width-font_width)/2)),y+image_height))
#展示内容
三、显示常见图形
1.画直线
def 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))
#花一天垂直线
# pygame.draw.line(window,(255,0,0),(100,50),(100,200))
2.画线段(折线)
def lines(Surface,color,closed,pointlist,width=1)
Surface:画在哪儿
color:线的颜色
closed:是否闭合,起点和终点是否连接
pointlist:线段的列表
width:宽度
pygame.draw.lines(window,(255,0,0),False,[(100,200),(150,120),(140,300)])
3.画圆
def circle(Surface,color,pos,radius,width=0)
Surface:圆心半径
color:颜色
pos:位置
radius:半径
width:线段,0->填充
pygame.draw.circle(window,(255,255,0),(250,275),100,0)
4.画矩形
def rect(Surface,color,Rect,width=0)
Surface:画在哪儿
color:颜色
Rect:范围(元组,元组中有四个元素,分别是x,y,width,height)
width:线宽,0->填充
pygame.draw.rect(window,(255,0,0),(0,0,50,100))
5.画多边形
def polygon(Surface,color,pointlist,width=0)
6.画椭圆
def ellipse(Surface.color,Rect,width=0),内切矩形原理
7.画弧线
def arc(Surface,color,Rect,start_angle,end_angle,width=1)
网友评论