脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - 利用Python实现好看的水波特效

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

2022-12-12 10:40木木子学python Python

这篇文章主要介绍了如何利用Python语言实现水波特效,文中的示例代码讲解详细,对我们学习Python有一定的帮助,需要的可以参考一下

前言

你的心要如溪水般柔软,你的眼波要像春天般明媚。

——余光中

利用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实现好看的水波特效的文章就介绍到这了,更多相关Python水波特效内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://juejin.cn/post/7091633252250681374

延伸 · 阅读

精彩推荐