首页 > 其他 > 详细

03.动画

时间:2019-10-29 12:39:25      阅读:66      评论:0      收藏:0      [点我收藏+]
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

技术分享图片

 

03.动画

原文:https://www.cnblogs.com/fly-book/p/11757340.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!