2018-09-04_day12_pygame介绍

2018-09-04  本文已影响0人  oxd001

一、基本功能

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)
上一篇 下一篇

猜你喜欢

热点阅读