美文网首页
[日更挑战-第十三弹]python-pygame初识

[日更挑战-第十三弹]python-pygame初识

作者: 小明阿婆 | 来源:发表于2020-05-28 22:07 被阅读0次



    也是突然间心血来潮,想着捣鼓捣鼓 pygame 这个模块。今天呢,就是找了一个入门级别的小程序来解读,虽然说是入门级别,但解读还是费了挺大功夫的,下面的代码是从 wanghuizhao 大神的博客搬运过来,备注呢,是我的解读。

    使用工具:pygame



    环境准备:


    1. 搭建python开发环境
    2. 在cmd下,执行下面的命令
    pip install pygame
    

    源码讲解环节


    好的,下面就是喜闻乐见的源码讲解环节了(´◔౪◔)

    import pygame
    from pygame.locals import *
    from sys import exit
    
    # pygame参数初始化
    pygame.init()
    
    # 生成窗口以及窗口标题  参数:长宽,0为不显示特性,32为色深
    screen = pygame.display.set_mode((640, 480), 0, 32)
    pygame.display.set_caption("Little Case")
    
    # 加载并转换图片
    # convert()可以将图片转换为surface对象,但现在pygame默认自动转换
    # 而convert_alpha()则是在上者的基础上保留度了图像的Alpha通道信息,即透明部分
    highway = pygame.image.load("highway.jpg").convert()
    car = pygame.image.load("car.png").convert_alpha()
    
    # 初始坐标
    x = 0
    y = 300
    # car的数值
    z = 1
    
    # 加载以及渲染字体
    # 从系统字体库创建一个 Font对象, "arial"为name   16为size
    # 这里也可以使用一个ttf字体文件的地址,但调用的方法就应该换成pygame.font.Font()
    my_font = pygame.font.SysFont("arial", 16)
    
    # 参数一:显示的内容
    # 参数二:是否开启抗锯齿,就是说True的话字体会比较平滑,不过相应的速度有一点点影响
    # 参数三:字体颜色
    # 参数四:字体背景颜色(可选)
    text_surface = my_font.render(("%d car" % (z)), True, (0, 0, 255))
    
    # 创建帧率对象
    clock = pygame.time.Clock()
    
    
    # 主循环
    while True:
        # 帧率越小,画面越卡
        clock.tick(120)
    
    
        # 如果监听到点击右上角的退出,则退出
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.display.quit()
                exit()
    
        # 矩形颜色坐标等,就是右上角框住car的矩形
        rc = (0, 250, 0)
        rp = (560, 0)
        rs = (639, 60)
    
        # 每次x前进0.2  但这里会触发一个警告,x为float,python会警告需要int的形式,并说明以后可能会不支持float
        # x += 0.2
    
        # 可以引入clock对象,控制帧率
        x += 2
    
        # 如果x>640+小车的长度
        if x > 640 + car.get_width():
            # x归为负小车的长度
            x = -car.get_width()
            # 车辆+1
            z += 1
            # 刷新字体对象
            text_surface = my_font.render(("%d cars" % z), True, (0, 0, 255))
    
        # 运用blit函数,参入对象与左上的坐标
        screen.blit(highway, (0, 0))
        screen.blit(text_surface, (620 - text_surface.get_width(), text_surface.get_height()))
        screen.blit(car, (x, y))
        # draw.rect为画矩形  参数为对象,颜色,左上角坐标和右下角坐标,宽度
        pygame.draw.rect(screen, rc, Rect(rp, rs), 1)  # Rect(左上角的坐标,右下角的坐标)
    
        # 画布刷新
        pygame.display.update()
    
    
    

    效果展示




    那么本次的分享就到这里了,喜欢的话麻烦点赞关注一下;不喜欢的话可以去看下小编的其他文章,肯定有喜欢的;都不喜欢的话可以点个关注,万一以后有喜欢的呢(๑•̀ㅂ•́)و✧


    相关文章

      网友评论

          本文标题:[日更挑战-第十三弹]python-pygame初识

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