美文网首页编程初入门
【pygame系列 第二课 狮子动画 】

【pygame系列 第二课 狮子动画 】

作者: 叶子陪你玩 | 来源:发表于2019-12-10 17:03 被阅读0次

python我们可以做文字版的游戏,比如猜数字游戏,21点游戏。那python可以做图形界面的游戏吗?偷偷告诉你,用pygame库就可以实现了。pygame是python中专门用来编写游戏的一个引擎库,通过使用它,就可以很快的实现编写图形化的游戏。

游戏效果:



实现思路:

第一步:素材准备

网上找了一张gif动图,利用工具(我用的是爱奇艺万能播放器)将其拆分为一张张的图片。

第二步:创建游戏窗口,搭建好基本游戏框架

第三步:创建一个lions列表,利用for循环,将所有的图片load到lions列表当中

第四步:利用人眼暂留效应,将一张张图片渲染出来

1.素材准备

可以自己用其它的图片素材,或者找我提供也可以。

2.创建游戏窗口

代码:

import pygame
# 使用前先需要初始化,初始化所有被导入的pygame子模块,固定用法
pygame.init()   # 初始化pygame
# 游戏肯定是在一个窗口中,那我们先来创建一个窗口
size = width, height = 800, 533     # 设置窗口大小
screen = pygame.display.set_mode(size)  # 设置
pygame.display.set_caption("狮子动画")
while True:  # 死循环确保窗口一直显示
    for event in pygame.event.get():  # 遍历所有事件
        if event.type == pygame.QUIT:  # 如果单击关闭窗口,则退出
            sys.exit()

    screen.fill([255, 255, 255])
    pygame.display.flip()  # 更新

pygame.quit()  # 退出pygame

效果图:

3.将所有的图片load到lions列表当中

游戏界面显示出来后,下面加载所有狮子图片,利用循环和字符串拼接方法实现。

代码:

import pygame
# 使用前先需要初始化,初始化所有被导入的pygame子模块,固定用法
pygame.init()   # 初始化pygame
# 游戏肯定是在一个窗口中,那我们先来创建一个窗口
size = width, height = 800, 533     # 设置窗口大小
screen=pygame.display.set_mode(size)# 设置
pygame.display.set_caption("狮子动画") # 设置标题

lions=[] # 创建一个列表,存储狮子图片对象
Dir = './lion/' # 狮子文件路径位置
for i in range(1,15):
    lions.append(pygame.image.load(Dir+'lion_'+str(i)+'.png'))

print(lions) # 打印查看效果

# while True:  # 死循环确保窗口一直显示
#     for event in pygame.event.get():  # 遍历所有事件
#         if event.type == pygame.QUIT:  # 如果单击关闭窗口,则退出
#             sys.exit()

#     screen.fill([255,255,255])
#     pygame.display.flip() # 更新

# pygame.quit()  # 退出pygame

效果:

4.将所有图片渲染出来

print所有图片对象,说明已经加载成功,接下来就是将所有图片依次显示出来,形成动图的效果。

代码:

import pygame
# 使用前先需要初始化,初始化所有被导入的pygame子模块,固定用法
pygame.init()   # 初始化pygame
# 游戏肯定是在一个窗口中,那我们先来创建一个窗口
size = width, height = 800, 533     # 设置窗口大小
screen=pygame.display.set_mode(size)# 设置
pygame.display.set_caption("狮子动画") # 设置标题

lions=[] # 创建一个列表,存储狮子图片对象
Dir = './lion/' # 狮子文件路径位置

for i in range(1,15):
    lions.append(pygame.image.load(Dir+'lion_'+str(i)+'.png'))

# print(lions) # 打印查看效果
index = 0 # 图片索引
while True:  # 死循环确保窗口一直显示
    for event in pygame.event.get():  # 遍历所有事件
        if event.type == pygame.QUIT:  # 如果单击关闭窗口,则退出
            sys.exit()

    screen.fill([255,255,255]) # 绘制背景白色
    # 因为只有14张图片,一直循环增加会超出索引,通过取余实现从头再来的效果
    screen.blit(lions[index%14], [0, 0]) # 将图片显示出来
    # 显示下一张图片的索引
    index+=1
    # 设置更新间隔,数字越小,更新越快
    pygame.time.wait(100)
    pygame.display.flip() # 更新

pygame.quit()  # 退出pygame

效果图:

总结:

本文通过人眼暂留的一个原理实现了一个动态的效果。

index%14是取余运算,结果的数值不会超过14,所以可以起到防止索引超出范围。

pygame.time.wait(100):设置更新速率,每隔100ms更新一次

欢迎转载,转载请注明出处!
欢迎关注公众微信号:叶子陪你玩
分享自己的python学习之路

相关文章

  • 【pygame系列 第二课 狮子动画 】

    python我们可以做文字版的游戏,比如猜数字游戏,21点游戏。那python可以做图形界面的游戏吗?偷偷告诉你,...

  • pygame事件

    pygame事件 鼠标事件的应用 pygame动画 ballgame 小球游戏

  • day11 Pygame的一些事件

    必须导入pygame后才能使用pygame 鼠标事件 动画原理

  • Python——Pygame模块

    学习资料: Pygame官网 pygame系列 PyGame - Python Wiki 用Python和Pyga...

  • day 11

    01 pygame 事件 02 pygame 鼠标事件 03 py game键盘事件 04 动画效果 05 多球效果

  • 2018-07-27 day10 Pygame模块

    Pygame模块 显示文字 显示图片 显示图形 动画

  • Day9-pygame

    1、pygame 2、显示文字 3、显示图片 4、显示图形 5、动画原理

  • 玩蛇系列之Pygame教程(三)-- 动画

    动画的原理 由于人类眼睛的特殊生理结构,如果所看画面之帧率高于24的时候,就会认为是连贯的,此现象称之为视觉暂留。...

  • 2018-09-04 day12 学习总结

    pygame 1.pygame基本操作 2. 3.形变 4.显示文字 5.显示图形 6.事件 7.动画原理 8.按...

  • day10 Pygame

    pygame作为一个第三方库,知名度较高,pygame的几种简单的用法: 显示文字 显示图片 显示图形 动画首先不...

网友评论

    本文标题:【pygame系列 第二课 狮子动画 】

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