美文网首页
python中pygame基础

python中pygame基础

作者: 发家致富靠养猪 | 来源:发表于2018-11-24 10:11 被阅读0次

    pygame

    游戏的最小系统

    import pygame
    import random
    #1.游戏初始化
    pygame.init()
    
    #创建游戏窗口
    '''
    set_mode(窗口大小)- 窗口大小是一个元祖。有两个元素:width,height
    set_mode((宽度,高度))
    宽度和高度的单位是像素
    '''
    window = pygame.display.set_mode((600,800))
    #将窗口填充成指定的颜色
    '''
    fill(颜色)- fill((r,g,b))
     计算机颜色- 计算机三原色 -红,绿,蓝(RGB)
            颜色值就是由三个数字组成,分别代表红、绿、蓝 数字范围(0-255)
            
    python中的颜色是一个元祖,元祖中有三个颜色,分别是 r,g,b
    (255.255.255)-白色
    (255.0.0)-红色
    (0.0.0)-黑色
    (0.255.0)-绿色
    '''
    window.fill((random.randint(0,255)))
    #将窗口展示到显示设备上
    pygame.display.flip()
    #3.创建游戏循环
    while True:
        #4.检测事件
        for event in pygame.event.get():
            #区分不同事件,做出不同反应
            pass
            #判断关闭按钮点击事件是否发生
            if event.type == pygame.QUIT:
                exit()#窗口关闭
    

    在窗口显示图片

    import pygame
    import random
    
    pygame.init()
    window = pygame.display.set_mode((1500,800))
    window.fill((random.randint(0,255)))
    
    #--========显示图片==========
    #1.加载图片
    '''
    pygame.image.load(图片地址)- 加载指定路径下的图片,返回一个图片对象
    '''
    
    image_obj = pygame.image.load('files/27r58PICkj7_1024.jpg')
    #2.渲染图片
    '''
    blit(渲染对象,位置)
    渲染对象:图片对象(显示对象)
    位置:元祖,(x坐标,y坐标)
    '''
    # window.blit(new_image2,(100,200))
    
    
    #3.获取图片大小
    '''
    图片对象.get_size()- 获取图片大小,返回值是元祖(width,height)
    '''
    im_w,im_h = image_obj.get_size()
    
    #4.图片缩放和旋转
    '''
    a.缩放
    pygame.transform.scale(图片对象,大小)-将指定图片缩放之指定大小
    '''
    new_image = pygame.transform.scale(image_obj,(50,20))
    # window.blit(new_image,(500,200))
    
    '''
    b.旋转缩放
    pygame.transform.rotozoom(图片对象,旋转角度,缩放比例)
    '''
    new_image2 = pygame.transform.rotozoom(image_obj,180,0.5)
    
    
    
    window.blit(new_image2,(100,200))
    
    #将窗口展示到显示设备上
    pygame.display.flip()
    #3.创建游戏循环
    while True:
        #4.检测事件
        for event in pygame.event.get():
            #区分不同事件,做出不同反应
            pass
            #判断关闭按钮点击事件是否发生
            if event.type == pygame.QUIT:
                exit()#窗口关闭
    

    显示文字

    import pygame
    import random
    
    pygame.init()
    window = pygame.display.set_mode((800,500))
    window.fill((255,255,255))
    
    #--========显示文字==========
    #1.创建字体对象(选笔)
    '''
    a.系统字体
    pygame.font.SysFont(字体名,字体大小,是否加粗=False,是否倾斜=False)-返回字体对象
    b.自定义字体
    '''
    font = pygame.font.SysFont('Times',20,True,True)
    
    font1 = pygame.font.Font('files/aa.ttf',20)
    
    #2.根据字体常见文字对象
    '''
    render(文字内容,是否平滑,文字颜色)
    '''
    text = font.render('hello pygame',True,(255,0,0))
    text1 = font1.render('李毅猪皮',True,(255,0,0))
    #3.将文字渲染到窗口上
    window.blit(text,(100,100))
    window.blit(text1,(300,100))
    
    
    #将窗口展示到显示设备上
    pygame.display.flip()
    #3.创建游戏循环
    while True:
        #4.检测事件
        for event in pygame.event.get():
            #区分不同事件,做出不同反应
            pass
            #判断关闭按钮点击事件是否发生
            if event.type == pygame.QUIT:
                exit()#窗口关闭
    

    显示图形

    import pygame
    from color import Color
    import math
    
    # 游戏最小系统
    pygame.init()
    window = pygame.display.set_mode((400, 600))
    window.fill((255, 255, 255))
    
    # ======显示图形=========
    # 1.画直线
    """
    line(画在哪儿, 线的颜色, 起点, 终点, 线宽=1)
    """
    pygame.draw.line(window, Color.green, (0, 0), (100, 100), 10)
    
    """
    lines(画在哪儿, 线的颜色, 是否闭合, 点列表, 线宽=1)
    依次连接点列表中所有的点(是否闭合决定是否连接起点和终点)
    """
    points = [(10, 10), (100, 70), (100, 170), (40, 230), (40, 320)]
    pygame.draw.lines(window, Color.red, True, points, 5)
    
    # 2.画圆
    """
    circle(画在哪儿, 颜色, 圆心坐标, 半径, 线宽=0)
    注意:线宽为0的时候画实心圆
    """
    pygame.draw.circle(window, Color.yellow, (100, 100), 80, 3)
    
    # 3.画弧线
    """
    arc(画在哪儿,颜色,矩形(Rect),起始弧度,终止弧度,线宽=1)
    矩形 - (x, y, width, height); x,y是矩形坐上角的坐标,width,height是矩形的宽高
    """
    pygame.draw.arc(window, Color.blue, (150, 300, 50, 100), 0, math.pi, 10)
    
    
    pygame.display.flip()
    
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                exit()
    
    

    事件和动画

    import pygame
    from color import Color
    
    pygame.init()
    window = pygame.display.set_mode((400, 600))
    window.fill((255, 255, 255))
    
    # 在这儿写的代码是静态的(界面上的内容)
    x = 100
    y = 100
    width = 100
    height = 80
    pygame.draw.rect(window, Color.green, (x, y, width, height))
    
    pygame.display.flip()
    
    while True:
    
        y += 3
        # width -= 2
        window.fill(Color.white)  # 覆盖原来的状态
        pygame.draw.rect(window, Color.rand_color(), (x, y, width, height))
        pygame.display.update()   # 重新显示
    
        # 有事件产生的时候才会进入for循环
        for event in pygame.event.get():
            # 1.type属性
            """
            不同的type值对应不同类型的事件
            QUIT - 关闭按钮被点击事件
            
            a.鼠标相关事件  -  按的位置
            MOUSEMOTION - 鼠标移动
            MOUSEBUTTONDOWN - 鼠标按下
            MOUSEBUTTOUP - 鼠标弹起
            
            event.pos - 获取鼠标事件产生的位置
            
            b.键盘事件 - 按的是哪个键
            KEYDOWN - 按键按下
            KEYUP - 按键弹起
            
            event.key - 被按的键对应的字符的编码值
            
            """
            if event.type == pygame.QUIT:
                exit()
    
            elif event.type == pygame.MOUSEMOTION:
                # print('鼠标移动', event.pos)
                # pygame.draw.circle(window, Color.rand_color(), event.pos, 30)
                # pygame.display.flip()
                pass
            elif event.type == pygame.MOUSEBUTTONDOWN:
                # 鼠标按下要做什么就写在这儿
                print('鼠标按下', event.pos)
                pygame.draw.circle(window, Color.rand_color(), event.pos, 30)
                pygame.display.flip()
            elif event.type == pygame.MOUSEBUTTONUP:
                print('鼠标弹起!', event.pos)
    
            elif event.type == pygame.KEYDOWN:
                print('按键按下')
                print(event.key, chr(event.key))
    
            elif event.type == pygame.KEYUP:
                print('按键弹起')
                print(event.key, chr(event.key))
    
    

    相关文章

      网友评论

          本文标题:python中pygame基础

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