美文网首页
2018-09-04day12-pygame

2018-09-04day12-pygame

作者: 猫爱老鼠丶 | 来源:发表于2018-09-04 19:00 被阅读0次

    一、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 --- 键盘事件被按的键对应的编码值

    六、动画原理

    七、按住不放原理

    相关文章

      网友评论

          本文标题:2018-09-04day12-pygame

          本文链接:https://www.haomeiwen.com/subject/zmcnwftx.html