这么利用Python实现好看的水波特效

发布时间:2022-04-29 13:40:42 作者:iii
来源:亿速云 阅读:193

这篇文章主要介绍“这么利用Python实现好看的水波特效”,在日常操作中,相信很多人在这么利用Python实现好看的水波特效问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”这么利用Python实现好看的水波特效”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、运行环境

 1)环境安装 

Python3、 Pycharm 、Pygame模块部分自带模块就不展示啦。(如需安装包、激活码等直接  

私信我即可安装问题解答都可以的哈~) 

 第三方库的安装:

pip install pygame 或者带镜像源 pip install -i https://pypi.douban.com/simple/ +模块名   

二、效果展示

截图的貌似展示不出来水的波动效果,嗨没办法 有点儿懒,就没拍视频,大家将就着看叭

真的视频效果好好看滴!是随水波荡漾的~

1)第一组随机风景图

这么利用Python实现好看的水波特效

2)第二组人物随机图

这么利用Python实现好看的水波特效

3)第三组真人图片

这么利用Python实现好看的水波特效

三、代码展示

"""照片模拟水的波动效果"""
import pygame, os
from pygame.locals import *
from math import sin  # 导入正弦函数的工具箱
import time

main_dir = os.path.split(os.path.abspath(__file__))[0]  # 获取当前文件所在路径

def main():
    pygame.init()  # 初始化
    screen = pygame.display.set_mode((640, 480), HWSURFACE|DOUBLEBUF)  # 生成一个窗口

    imagename = os.path.join(main_dir, 'data', 'liquid.bmp')  # 拼接图片路径
    bitmap = pygame.image.load(imagename)    # 加载图片
    bitmap = pygame.transform.scale2x(bitmap) # 将图像放大两倍
    bitmap = pygame.transform.scale2x(bitmap) # 将图像放大两倍

    if screen.get_bitsize() == 8: # 以相同的格式获取图像和屏幕
        screen.set_palette(bitmap.get_palette())
    else:
        bitmap = bitmap.convert()

    anim = 0.0

    while 1:
        for e in pygame.event.get():   # 处理事件
            if e.type in [QUIT, KEYDOWN, MOUSEBUTTONDOWN]:
                return

        anim = anim + 0.02
        for x in range(0,640,20):   # 模拟水的波动效果
            xpos = (x + (sin(anim + x * .01) * 15)) + 20
            for y in range(0, 480, 20):
                ypos = (y + (sin(anim + y * .01) * 15)) + 20
                screen.blit(bitmap, (x, y), (xpos, ypos, 20, 20))

        pygame.display.flip()  # 更新
        time.sleep(0.01)       # 等待0.01s


if __name__ == '__main__': 
    main()

到此,关于“这么利用Python实现好看的水波特效”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. 利用css样式如何制作好看的表单样式
  2. Python实现电视里5毛特效的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:C++内存泄漏调试方式是什么

下一篇:C#怎么开发Winform实现文件操作

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》