• 03.动画


    import pygame
    import sys
    from pygame.locals import *
    
    pygame.init()
    
    # 帧速率(frame rate)或刷新速率(refresh rate)是程序每秒钟绘制的图像的数目,
    # 用FPS或帧/秒来度量(在计算机显示器上,FPS常见的名称是赫兹。很多显示器的帧速率是60Hz,或者说每秒60帧)。
    # 视频游戏中,较低的帧速率会使得游戏看上去抖动或卡顿。
    # 如果游戏包含的代码太多了,以至于无法运行来频繁地绘制到屏幕上,那么,FPS会下降。
    FPS = 30
    fpsClock = pygame.time.Clock()
    
    DISPLAYURF = pygame.display.set_mode((400, 300), 0, 32)
    pygame.display.set_caption('Animation')
    
    WHITE = (255, 255, 255)
    catImg = pygame.image.load('cat.png')  # 将图像(精灵)加载到Surface对象上,返回一个Surface对象
    catx = 10
    caty = 10
    direction = 'right'
    
    while 1:
        DISPLAYURF.fill(WHITE)
        if direction == 'right':
            catx += 5
            if catx == 280:
                direction = 'down'
        elif direction == 'down':
            caty += 5
            if caty == 220:
                direction = 'left'
        elif direction == 'left':
            catx -= 5
            if catx == 10:
                direction = 'up'
        elif direction == 'up':
            caty -= 5
            if caty == 10:
                direction = 'right'
        # 必须将图像的Surface对象复制到显示Surface对象上。位图复制(Blitting)就是将一个Surface的内容绘制到另一个Surface之上
        # 把catImg复制到了DISPLAYSURF,参数二:左上角的X和Y坐标
        # 注意,不能复制当前“锁定”的一个Surface(例如,通过其生成了一个PixelArray对象并且还没有删除该对象,查看上一笔记中的绘制点像素就用到PixelArray对象)
        DISPLAYURF.blit(catImg, (catx, caty))
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()
        pygame.display.update()
    
        # pygame.time.Clock对象确保程序以某一个最大的FPS运行。Clock对象将会在游戏循环的每一次迭代上都设置一个小小的暂停,从而确保游戏程序不会运行得太快。
        # 如果没有这些暂停,游戏程序可能会按照计算机所能够运行的速度去运行。这对玩家来说往往太快了,并且计算机越快,它们运行游戏也就越快。
        # 在游戏循环中调用一个Clock对象的tick()方法,可以确保不管计算机有多快,游戏都按照相同的速度运行
        fpsClock.tick(FPS)  # 将其设置为一个较低的值,程序运行得较慢。较高的值,程序运行得较快

    图片官网地址:http://invpy.com/cat.png

  • 相关阅读:
    HDU 2594 Simpsons’ Hidden Talents(辛普森一家的潜在天赋)
    HUD 2203 亲和串
    POJ 3461 Oulipo(乌力波)
    FJNU 1154 Fat Brother And His Love(胖哥与女神)
    Polygon Triangles
    Double it(水题模拟+逆向思维)
    Sphenic numbers(素数筛)
    Desktop(模拟)2016-2017 ACM Central Region of Russia Quarterfinal Programming Contest
    Weather Station(基础DP)2016-2017 ACM Central Region of Russia Quarterfinal Programming Contest
    找零钱(经典DP)
  • 原文地址:https://www.cnblogs.com/fly-book/p/11757340.html
Copyright © 2020-2023  润新知