当前位置:首页 > 编程技术 > 正文内容

在 Python 中使用 Arcade 模块创建雪效果

yc8881年前 (2023-08-05)编程技术246

我们都想为我们的演示文稿或视频添加额外的效果。这些效果有助于我们更好地展示我们的产品或帮助增加用户体验。在本教程中,您将学习如何使用街机模块实现雪景效果。

您可以在游戏中使用它来创建细雨或雨滴效果。您甚至可以继续将其设置为屏幕超时效果。

话虽如此,让我们开始吧!

开始

在本教程中,我们将使用街机模块来帮助用户轻松创建与游戏相关的功能。

此模块未预装在 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 输出屏幕上创建雪教程效果。您可以通过更改一些值来继续试验它。


本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!


从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!


本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。


本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。


若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。


本文链接:https://www.10zhan.com/biancheng/10671.html

标签: Python
分享给朋友:

“在 Python 中使用 Arcade 模块创建雪效果” 的相关文章

【说站】laravel实现自定义404页面并给页面传值

【说站】laravel实现自定义404页面并给页面传值

以 laravel5.8 为例,虽然有自带的404页面,但太简单,我们更希望能自定义404页面,将用户留在站点。实现的方式很简单,将自定义的视图文件命名为 404.blade.php,并放到 reso...

【说站】用一句话就可以去除宝塔面板操作上的二次验证

【说站】用一句话就可以去除宝塔面板操作上的二次验证

用过宝塔的朋友应该都会发现,现在宝塔面板有些鸡肋的功能,删除文件、删除数据库、删除站点等操作都需要做计算题!不仅加了几秒的延时等待,还无法跳过!这时候就会有朋友在想,如何去除宝塔面板的二次验证,此篇文...

【说站】Centos8.0如何配置静态IP详解及永久关闭防火墙

【说站】Centos8.0如何配置静态IP详解及永久关闭防火墙

这篇文章主要介绍了详解Centos8 配置静态IP的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来学习一下!1. 查看自己的网关地址点击虚...

【说站】利用Webhook实现Java项目自动化部署

【说站】利用Webhook实现Java项目自动化部署

用webhook就能实现Java项目自动部署,其实原理很简单。费话不多说,直接往下看教程。1. 创建gitee仓库并初始化2. 在linux安装git3. 在宝塔的软件的商店里下载Webhook4....

【说站】电脑安装MySQL时出现starting the server失败原因及解决方案

【说站】电脑安装MySQL时出现starting the server失败原因及解决方案

今天在安装MySQL时出现starting the server失败,经过查询分析得出以下结论,记录一下操作步骤。原因分析:如果电脑是第一次安装MySQL,一般不会出现这样的报错。如下图所示。star...

【说站】vagrant实现linux虚拟机的安装并配置网络

【说站】vagrant实现linux虚拟机的安装并配置网络

一、VirtualBox的下载和安装1、下载VirtualBox官网下载:https://www.virtualbox.org/wiki/Downloads我的电脑是Windows的,所以下载Wind...