美文网首页
2018-07-27 day10 Pygame模块

2018-07-27 day10 Pygame模块

作者: Kris_Shin | 来源:发表于2018-07-27 18:46 被阅读0次

    Pygame模块

    import pygame
    
    
    def main():
        # 1.初始化pygame模块
        pygame.init()
        # 2.创建游戏窗口
        # set_mode((宽度,高度)) 像素
        pygame.display.set_mode((600, 400))
        # 3.游戏循环
        while True:
            # 检测时间
            for event in pygame.event.get():
                # 检测变体兰关闭按钮是否被点击
                if event.type == pygame.QUIT:
                    # 退出游戏
                    print('点击关闭按钮')
                    exit()
    
    
    if __name__ == '__main__':
        main()
    

    显示文字

    import pygame
    
    
    def main():
        pygame.init()
        screen = pygame.display.set_mode((600, 400))
        # 设置窗口背景颜色
        screen.fill((200, 200, 240))
    
        # 1.创建字体对象
        '''
        创建系统字体
        SysFont(name, size, bold=0, italic=0, constructor=None)
        name → 字体名字
        size → 字体大小
        bold → 加粗
        italic → 倾斜
        '''
        font = pygame.font.SysFont('华文新魏', 200)
        '''
        创建自定义字体
        Font('路径',大小)
        '''
        font = pygame.font.Font('./day10/font/HYShangWeiShouShuW.ttf', 180)
        # 2.根据字体创建显示对象(文字)
        '''
        render(text, antialias, color, background=None)
        text → 要显示的文字内容(str)
        antialias → 抗锯齿
        color → 光学三原色RGBa,值范围(255,0,0)→ 红色
        '''
        surface = font.render('流批', True, (255, 0, 0))
        # 3.内容添加到窗口上
        '''
        blit(需要显示的对象,显示位置)
        显示的对象 → surface类型的数据
        显示位置 → 坐标(x, y)
        '''
        screen.blit(surface, (100, 100))
        # 4.将窗口上的内容显示出来
        pygame.display.flip()
        while True:
            for evt in pygame.event.get():
                if evt.type == pygame.QUIT:
                    exit()
    
    
    if __name__ == '__main__':
        main()
    

    显示图片

    import pygame
    
    
    def main():
        pygame.init()
        screen = pygame.display.set_mode((600, 600))
        screen.fill((180, 180, 240))
        # 1.获取图片对象
        img = pygame.image.load('./day10/img/1.png')
        '''
        a.获取图片大小
        get_size()
        '''
        # imgSize = img.get_size()
        '''
        b.形变
        transform:缩放,旋转,平移
        scale(对象,大小) → 返回新的对象
        rotate(对象,角度) → 返回新的对象
        rotozoom(对象, 角度, 大小(比例))
        '''
        # img = pygame.transform.scale(img, (500, 500))
        # img = pygame.transform.rotate(img, 90)
        img = pygame.transform.rotozoom(img, 50, 0.4)
        # 2.图片对象渲染到窗口上
        screen.blit(img, (50, 50))
        # 3.显示图片
        pygame.display.flip()
        while True:
            for evt in pygame.event.get():
                if evt.type == pygame.QUIT:
                    exit()
    
    
    if __name__ == '__main__':
        main()
    

    显示图形

    import pygame
    from math import pi
    from random import randint as ri
    
    
    def main():
        pygame.init()
        screen = pygame.display.set_mode((500, 500))
        screen.fill((255, 255, 255))
        '''
        1.画直线
        line(Surface, color, start_pos, end_pos, width)
        Surface → 画在哪
        color → 颜色
        start_pos, end_pos → 起点终点坐标(元组)
        width → 宽度 默认为1
        '''
        # pygame.draw.line(screen, (0, 0, 20), (50, 50), (400, 400), 3)
        # pygame.draw.line(screen, (0, 0, 20), (400, 50), (50, 400), 3)
        '''
        lines(对象, 颜色, 是否封闭, 元组列表, 宽度)
        '''
        points = [(100, 30), (100, 480), (100, 250), (400, 30), (100, 250), (400,
                                                                             480)]
        pygame.draw.lines(screen, (0, 255, 50), False, points, 20)
        '''
        2.画曲线
        arc(对象, 颜色, Rect, start_angle, stop_angle, 宽度)
        Rect → (x,y,width,height)矩形对象
        start_angle, stop_angle
        '''
        pygame.draw.arc(screen, (255, 20, 35), (100, 100, 150, 120), 1.1 * pi,
                        1.9 * pi, 2)
        '''
        画矩形
        rect(对象, 颜色, Rect, width)
        '''
        pygame.draw.rect(screen, (200, 200, 35), (200, 300, 200, 100), 9)
        '''
        3.圆
        circle(对象, 颜色, 圆心点, 半径, 线宽(默认为0填充))
        '''
        cor = (ri(0, 255), ri(0, 255), ri(0, 255))
        pygame.draw.circle(screen, cor, (250, 250), ri(1, 250))
        '''
        4.椭圆
        ellipse(对象, 颜色, Rect, 线宽)
        '''
        pygame.draw.ellipse(screen, cor, (20, 20, 50, 80))
        # 将内容渲染到屏幕
        pygame.display.flip()
        while True:
            for evt in pygame.event.get():
                if evt.type == pygame.QUIT:
                    exit()
    
    
    if __name__ == '__main__':
        main()
    

    动画

    import pygame
    from time import sleep
    
    
    def main():
        pygame.init()
        screen = pygame.display.set_mode((500, 500))
        screen.fill((240, 240, 240))
        x, y = 0, 0
        while True:
            for evt in pygame.event.get():
                if evt.type == pygame.QUIT:
                    exit()
            screen.fill((240, 240, 240))
            pygame.draw.circle(screen, (0, 0, 0), (x, y), 50)
            pygame.display.flip()
            sleep(0.003)
            x += 2
            y += 1
    
    
    if __name__ == '__main__':
        main()
    

    相关文章

      网友评论

          本文标题:2018-07-27 day10 Pygame模块

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