pygame实现物体运动拖尾尾迹

文章目录

  • 前言
  • 主要内容
    • 讲解:
    • 代码
  • 总结
  • 更多宝藏


前言

😎🥳😎🤠🤖🙈💭🍳🍱

本文我们来讲一下如何使用pygame实现一个拖尾特效。
在这里插入图片描述


主要内容

🦞🦐🦀🦑🦪

讲解:

一分钟一个pygame案例,在这两集我们将要学习一下如何使用pygame来实现视频中的物体运动尾迹拖尾效果,非常非常简单。

当然我们这里只是实现了物体本身拖尾,透明度递减的物体拖尾,以及彩色线条拖尾,其实还具有粒子效果拖尾,纹理图拖尾矢量图形拖尾等,后面我们有机会或者大家想看的话也可拿出来讲一讲。
下面我们还是老规矩,先讲效果实现思路,再讲效果的实现代码。

首先,你可以暂停视频五秒钟,思考一下,如果是你,你会如何实现这样的效果。

好了,现在揭晓答案,无论是前面的小球,还是后面的线条,其实他们都是一样的原理,我们快速的移动鼠标可以发现运动尾迹其实就是物体经过的地方依旧绘制有物体图案,然后在一定时间后消失组成的效果。

其实我们可以将这一过程抽象为有一个长度固定的物体数组,将这些物体全部绘制在窗口上,之所以不运动的时候你只看到了一个物体,是因为所有的物体重合了,所以你只能看到一个。而运动的时候所有的物体的坐标不再一致,所以会显示一连串。

没错,就是这么简单,就是画一个圆与多个圆的区别,那么知道这一原理后,我们绘制出透明度逐渐减少的尾迹也只是改变下颜色的问题。但在pygame的主窗口中,是不支持rgba颜色的,所以我们后面也会给出解决方案。

现在,我们先来看绘制多个物体实现尾迹的实现代码。

还是老规矩,我们不再讲那些基础的代码,只讲与本视频知识点有关系的代码。我们在这里定义小球的半径和颜色,在这里定义小球的初始位置和初始速度,然后定义一个列表用于存储多个物体。

在事件的循环中,我们不断获取鼠标的位置,并且根据鼠标位置和小球的位置去更新小球的速度,再根据小球速度去更新小球的位置。然后将小球的位置信息添加进小球数组,这样就实现了记录路径上小球的功能。

然后我们用白色填充屏幕,接着画出列表中每一个小球,最重要的是,我们最多每次取出列表后20个小球,防止小球的无限增长。

好了,代码已经讲解完毕,是不是非常简单。下面我们来看一下运行的效果。

当然,显示的效果这些参数都是可以修改的,比如小球的颜色,大小,乃至小球拖尾的长度。

比如说我们这里将小球大小改为100,颜色改为黑色,拖尾长度改为5个。可以看到这样的效果。

怎么样,是不是很简单。下面几集我们来介绍如何绘制透明度变化的物体拖尾与渐变拖尾。关注阿婆主,获取第一手知识。

代码

import pygame
import sys# 初始化并屏幕大小,创建屏幕,设置窗口的标题,即游戏名称
pygame.init()
screen_width, screen_height = 800, 600
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_icon(pygame.image.load('logo.png').convert())
pygame.display.set_caption('编程启航')# 小球属性
ball_radius = 20
ball_color = (0, 0, 255)# 小球的位置和速度
ball_pos = [screen_width // 2, screen_height // 2]
ball_velocity = [0, 0]# 拖尾效果所需的轨迹点
trail_points = []# 游戏循环
running = True
while running:for event in pygame.event.get():if event.type == pygame.QUIT:running = False# 获取鼠标位置mouse_pos = pygame.mouse.get_pos()# 更新小球速度ball_velocity[0] = (mouse_pos[0] - ball_pos[0]) * 0.1ball_velocity[1] = (mouse_pos[1] - ball_pos[1]) * 0.1# 更新小球位置ball_pos[0] += int(ball_velocity[0])ball_pos[1] += int(ball_velocity[1])# 添加当前位置到轨迹点列表trail_points.append(ball_pos.copy())# 清空屏幕screen.fill((255, 255, 255))# 更新和绘制轨迹点for i, point in enumerate(trail_points):pygame.draw.circle(screen, ball_color, point, ball_radius)# 控制小球数量trail_points = trail_points[-20:]# 更新屏幕,控制帧率pygame.display.flip()pygame.time.Clock().tick(60)pygame.quit()
sys.exit()

总结

🐋 🐬 🐶 🐳 🐰 🦀☝️ ⭐ 👉 👀

如果你对这篇文章感兴趣,欢迎在评论区留言,分享你的想法和建议。如果你喜欢我的博客,请记得点赞、收藏和关注我,我会持续更新更多有用的网页技巧和教程。谢谢大家!


更多宝藏

🍇🍉🍊🍏🍋🍅🥝🥥🫒🫕🥗
项目仓库看这里🤗:
https://github.com/w-x-x-w
https://gitee.com/w-_-x
公众号名称😮:编程启航
博客文章看这里🤭:
https://blog.csdn.net/weixin_62650212
视频推送看这里🤤:
https://space.bilibili.com/1909782963

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1621039.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

pe_xscan 增加 O31 项

O31项 对应的项目: 开机、关机脚本 用户登录、注销脚本

LeetCode第1~5题解

CONTENTS LeetCode 1. 两数之和LeetCode 2. 两数相加LeetCode 3. 无重复字符的最长子串 LeetCode 1. 两数之和 【题目描述】 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。…

linux下运行win10效果好不好,Win10不好用?继续坚守Win7的人依然巨多

前不久,微软发布消息称Windows 10操作系统市场占有率终于突破50%。而近日,安全厂商卡巴斯基发布的8月下旬最新研究报告也印证了这一点,并且从数据来看,Windows 10系统的占有率还有小幅度的增长,达到了53%左右。 退休时…

其实win10要比win7的安全性强很多

随着win10系统的一步步更新,用户体验度也越来越好,更多的用户也换了win10的系统,但还是有一部分用户依然雷打不动的信任着win7。下面小编来分析一下win7和win10到底有着怎样的差别,相信看完下文,你也会想升级win10系统…

W7-2495X参数 至强W72495X功耗

W7-2495X采用10纳米工艺二十核心四十线程CPU主频 2.6GHz动态加速频率 4.8GHz 热设计功耗(TDP) 225W支持最大内存容量 2TB内存类型 DDR5 4800MHz W7-2495X性能怎么样这些点很重要 http://www.adiannao.cn/du

电脑装了w10没有w7流畅怎么办?

如果我们对自己的电脑进行了系统的重装,在电脑装了win10系统之后发现没有win7流畅的话,很多小伙伴不知道是什么情况应该怎么解决。 那么据微点阅读小编所知可能是我们电脑硬件设施的不兼容所导致的。我们可以在官网上查看win10系统的配置要求是否符合自…

W7-2475X参数 至强W72475X功耗

W7-2475X采用10纳米制作工艺二十核心四十线程CPU主频 2.6GHz动态加速频率 4.8GHz 热设计功耗(TDP) 225W支持最大内存容量 2TB内存类型 DDR5 4800MHz W7-2475X性能怎么样这些点很重要 http://www.adiannao.cn/du

Intel 至强 W7-3465X参数 W73465X功耗

至强 W7-3465X采用10纳米 制作工艺 二十八核心五十六线程CPU主频 2.5GHz动态加速频率 4.8GHz热设计功耗(TDP) 300W支持最大内存容量 4TB 内存类型 DDR5 4800MHz W7-3465X性能怎么样这些点很重要 http://www.adiannao.cn/du

五类造成Windows 7假死的原因及处理

Windows 7虽好,可是小问题不断。从Beta版本至今,很多朋友遇到最严重的问题就是资源管理器偶尔或者经常失去响应,虽然不是什么非重装的问题,但是时不时电脑卡上一段时间,谁都觉得很烦。那么到底Windows 7在哪些情况下会…

高傲的win7

高傲的win7 首先为win7证明:本文内容和本人下载的系统版本以及硬件细节有关,并不能代表所有的win7种族。 好久没有写博客了,主要是因为把很多东西都记录在笔记里边了,但是感觉写博客和笔记还是不太一样,笔记就是随时…

我对windows7简单评论

10月25日受朋友的邀请参加了弘博软件教育学院成功举办的windows 7发布会 发现不止是我一个对windows 7偏爱有加。这里这里在座师生也是windows7 的粉丝。 windows 7发布会一次又一次的成举办功也源于它独特的性能,带给我们的方便、快捷。 经过我近一个月的使用&…

09年IT界最愚蠢的九件事 Windows7精简版UAC上榜(转)

据国外媒体报道,临近岁末,资讯网站eWeek于上周评出了《九款年度重磅产品》。无独有偶,该网站此番又评选出2009年度最不受用户欢迎的九大事件: 1、亚马逊删书门 今年七月份,在线销售巨人亚马逊(Amazon&…

历经十年,还有一个月,Windows 7 生命周期将结束,相信很多人还是觉得win7不错的

距离 Microsoft 终止对 Windows 7 的支持只剩一个月的时间了,到 2020 年 1 月 14 日,这款经典的操作系统就要和大家 say goodbye 了。 2009 年 7 月 4 日,Windows 7 正式开发完成,到现在已经整整 10 岁。它在 Vista 前辈的基础上发展而来,界面友好,功能强大,使用高效,因…

服务器装系统步骤图解win7,w7系统重装步骤是怎样的|w7重装系统教程图解

w7系统是当前最稳定,也是最主流的系统,不过w7系统在使用过程也会出现系统故障,有些甚至出现系统崩溃不能启动的问题,这时候就需要重装系统,那么w7系统重装步骤是怎样的呢?w7重装系统一般有三种方式&#xf…

基于阿基米德优化算法优化的BP神经网络(预测应用) - 附代码

基于阿基米德优化算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于阿基米德优化算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.阿基米德优化优化BP神经网络2.1 BP神经网络参数设置2.2 阿基米德优化算法应用 4.测试结…

为何依然有很多用户不愿舍弃Windows7?

微软早在2016年7月29日之后就关闭了免费升级到Windows10的通道,但是那之后可以通过辅助技术通道免费将Windows7和Windows8.1升级到Windows10,直到12月31日完全关闭,此后用户升级到Windows10需要付费,不过为何还是有那么多的用户喜…

w7的计算机属性系统保护在哪个文件夹,W7恢复系统文件最有效的方法

文件丢失这个问题已经不是第一次遇到了,其实并不需要多么高端的操作,W7恢复系统文件非常简单。接下来小编将详细给大家介绍一下win7系统自带的还原功能,以及教大家W7恢复系统文件最有效的方法,掌握了这个方法以后再也不怕文件丢失…

Windows 7 又惹祸了!

8 月 3 日深夜,全球晶圆制造领域最为核心的代工厂台湾积体电路制造股份有限公司(以下简称台积电)三条生产线突然遭到病毒入侵,导致数条生产线被迫中断 3 天。据台媒报道,这次事件中被波及的有新竹、台中和台南三处厂区…

8.7.tensorRT高级(3)封装系列-调试方法、思想讨论

目录 前言1. 模型调试技巧总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程,之前有看过一遍,但是没有做笔记,很多东西也忘了。这次重新撸一遍,顺便记记笔记。 本次课程学习 tensorRT 高级-调试方法、思想讨论 课程大纲可看…

remove logo now注册码

点击下载来源:remove logo now注册码 remove logo now注册码是用来激活破解一款非常好用的视频水印去除工具remove logo now的激活注册码,也可以说是序列号。我们知道这款软件由于涉及版权问题,需要收费购买使用,试用版只能免费试…