在 Python 中使用 Arcade 模块创建雪效果
我们都想为我们的演示文稿或视频添加额外的效果。这些效果有助于我们更好地展示我们的产品或帮助增加用户体验。在本教程中,您将学习如何使用街机模块实现雪景效果。
您可以在游戏中使用它来创建细雨或雨滴效果。您甚至可以继续将其设置为屏幕超时效果。
话虽如此,让我们开始吧!
开始
在本教程中,我们将使用街机模块来帮助用户轻松创建与游戏相关的功能。
此模块未预装在 Python 中。这意味着我们将使用 pip 包管理器来安装它。
为此,请使用以下命令。
pip3 install arcade
安装街机模块后,就该将其各种方法导入脚本了。
为此,我们使用 import 关键字,后跟 Python 中的模块名称。
import arcade
就是这样!你们现在就可以开始处理手头的任务了。
使用街机模块创建雪景效果
我们需要导入随机和数学模块以及街机模块。你很快就会明白为什么。
import random import math import arcade
现在,首先我们必须定义每片雪花。在这个脚本中,每一片雪花都是屏幕上的一个点。因此,我们将考虑 x 和 y 变量在输出屏幕上的位置。
我们还定义了一个函数reset_pos,我们将使用它来定义雪花到达窗口末端后的位置。
class Snow: def __init__(self, height, width): self.x = 0 self.y = 0 def reset_pos(self, height, width): self.y = random.randrange(height, height + 100) self.x = random.randrange(width)
仅此而已。我们现在有一个定义的雪教程。现在,我们需要开始在输出窗口上处理雪花下落的模式。
首先,我们定义使用街机模块绘制输出屏幕的基本功能。
class MyGame(arcade.Window): def __init__(self, width, height): super().__init__(width, height) self.stream = None
现在,我们定义一个启动脚本时运行的启动函数。
该函数将负责描述每个ptutorial的运动。它们下落的角度、下落的速度、粒子的大小以及它在屏幕上相对于输出窗口的位置。
这就是随机导入发挥作用的地方。我们使用随机模块来调节这些粒子的随机生成。
def start(self, height, width): self.stream = [] for i in range(100): # Increase to increase number of snow ptutorials. snow = Snow(800, 600) snow.x = random.randrange(width) snow.y = random.randrange(height + 200) snow.size = random.randrange(2) snow.speed = random.randrange(20, 100) snow.angle = random.uniform(math.pi, math.pi * 2) self.stream.append(snow) # define bg colour arcade.set_background_color(arcade.color.BLACK)
现在,我们需要使用默认的 on_draw 函数,该函数将在输出窗口中生成 ptutorials。
def on_draw(self): # This is a default function. arcade.start_render() for snow in self.stream: arcade.draw_circle_filled(snow.x, snow.y, snow.size, arcade.color.WHITE)
我们还需要定义 on_update 函数,该函数将在 y 方向上越过输出窗口边界的极限时定义 ptutorial 的位置。
def on_update(self, delta_time): # This is a default function. for snow in self.stream: snow.y = snow.y - snow.speed * delta_time if snow.y < 0: snow.reset_pos(800, 600) snow.x = snow.x + snow.speed * math.cos(snow.angle) * delta_time snow.angle = snow.angle + delta_time
就是这样!您现在已经准备好了完整的脚本!让我们使用 main 函数并定义窗口的边框并运行街机函数。
if __name__ == "__main__": window = MyGame(800, 600) window.start(800, 600) arcade.run()
它将产生以下输出 -
完整脚本
这是完整的代码 -
import random import math import arcade class Snow: def __init__(self, height, width): self.x = 0 self.y = 0 def reset_pos(self, height, width): self.y = random.randrange(height, height + 100) self.x = random.randrange(width) class MyGame(arcade.Window): def __init__(self, width, height): super().__init__(width, height) self.stream = None def start(self, height, width): self.stream = [] for i in range(100): snow = Snow(800, 600) snow.x = random.randrange(width) snow.y = random.randrange(height + 200) snow.size = random.randrange(2) snow.speed = random.randrange(20, 100) snow.angle = random.uniform(math.pi, math.pi * 2) self.stream.append(snow) arcade.set_background_color(arcade.color.BLACK) def on_draw(self): # This is a default function. arcade.start_render() for snow in self.stream: arcade.draw_circle_filled(snow.x, snow.y, snow.size, arcade.color.WHITE) def on_update(self, delta_time): # This is a default function. for snow in self.stream: snow.y = snow.y - snow.speed * delta_time if snow.y < 0: snow.reset_pos(800, 600) snow.x = snow.x + snow.speed * math.cos(snow.angle) * delta_time snow.angle = snow.angle + delta_time if __name__ == "__main__": window = MyGame(800, 600) window.start(800, 600) arcade.run()
结论
您现在知道如何使用 Python 中的 Arcade 模块在 GUI 输出屏幕上创建雪教程效果。您可以通过更改一些值来继续试验它。
更新于:3个月前相关文章
- 【说站】python中random模块求随机数
- 【说站】python中figure()函数画两张图
- 【说站】python中subplot函数怎么画图?
- 【说站】python异常时的语句处理
- 【说站】python列表如何传递到线程?
- 【说站】python局部作用域是什么
- 【说站】python中Queue如何通信
- 【说站】python WSGI规范是什么
- 【说站】python中进程池Pool的初始化
- 【说站】python Pool常用函数有哪些
- 【说站】python整数的进制转换
- 【说站】python如何使用send唤醒
- 【说站】python gevent的原理分析
- 【说站】python生成器创建的方法整理
- 【说站】本月编程语言排行:C语言稳居榜首,python持续上升
- 【说站】python密码生成器的使用
- 【说站】python模块如何传入参数
- 【说站】python模块的介绍和导入
- 【说站】招聘月:Python数据分析岗位迎来机遇
- 【说站】python调用函数的注意点