热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python实现流星雨星空特效代码

本文讲述了python实现流星雨星空特效代码!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过

attachments-2023-02-ZbtTIelx63e1a7956de86.jpg

本文讲述了python实现流星雨星空特效代码!具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧,具体如下:

我们先给大家讲个小故事,提一下你们的兴趣;然后我给出论据,得出结论。最后再把浪漫的流星雨表白代码奉上,还有我自创的一首诗。

开始啦:

霍金说移民外太空

霍金说我们将来外星上生存;埃隆.马斯克也是这样想的。

我前面讲外星人来不到地球,这个道理已经很清楚。我再说几个数据,大家听听,我们且不要说到更远的外星,我们人类今天登上月球,把一个字航员送上月球,他在月球上待一分钟,要消耗地球一百万美元的资源才能在月球上待一分钟 。

我们说未来在火星上殖民,想想你在月球上一个人待一分钟,要消耗地球一百万美元的资源,你在火星上殖民几千人、几万人,你得把整个地球资源毁灭掉,都调到火星上去。然后你只把七十亿人调过去了几千、几万人,然后他在那可能死得更快,这根本不是出路,这怎么会成为出路呢?

我们再看,移居外星,离我们地球最近的另一个恒星系叫半人马座。半人马座,阿尔法星

也叫比邻星。大家注意,这都是恒星,比邻星距离太阳最近,有多近?  4.2光年,光以每秒钟三十万公里,走4.2年,就这我们还不知道比邻星的那个恒星旁边有没有行星。

就算有行星有没有宜居行星、类地行星。这我们还全然不知道。我们就假定那个地方有好了另一个地球,你按照今天人类火箭和卫星的最高速度,你单程从地球上飞到比邻星,需要一万五千年到三万年。

请注意我们文明史,文明有文字,以后的文明迄今才五千年,你单程飞到那个地方要一万五千年以上。我说过有没有行星都不知道。这个前途存在吗?根本不存在。就像外星人来不了我们这儿一样,我们也到不了任何外星存在。

我们今天连太阳系都没有走出去,没有在太阳系的任何一个行星上殖民,所以移民外星根本不是出路。

浪漫的流星雨展示 

attachments-2023-02-Xq0dTo6G63e1a71bb9922.jpg

看了这两张图,是不是觉得超级浪漫呀~

下面给大家附上Python代码 

def bgpic(self, picname=None):

    """Set background image or return name of current backgroundimage.

    Optional argument:

    picname -- a string, name of a gif-file or "nopic".

    If picname is a filename, set the corresponding image as background.

    If picname is "nopic", delete backgroundimage, if present.

    If picname is None, return the filename of the current backgroundimage.

    Example (for a TurtleScreen instance named screen):

    >>> screen.bgpic()

    'nopic'

    >>> screen.bgpic("landscape.gif")

    >>> screen.bgpic()

    'landscape.gif'

    """

    if picname is None:

        return self._bgpicname

    if picname not in self._bgpics:

        self._bgpics[picname] = self._image(picname)

    self._setbgpic(self._bgpic, self._bgpics[picname])

    self._bgpicname = picname

  

  

# coding: utf-8

import pygame

import os

import sys

from pygame.locals import *

  

os.chdir('E:/星空下的告白')

os.getcwd()

pygame.init()

pygame.mixer.init()

pygame.mixer.music.load("星空之美.mp3")

# pygame.mixer.music.set_volume(0.4)

pygame.mixer.music.play()

bg_size = width, height = 300, 200

bg_rgb = (255, 255, 255)

screen1 = pygame.display.set_mode(bg_size)

pygame.display.set_caption("告白音乐")

clock = pygame.time.Clock()

pause_rect = pause_image.get_rect()

print(pause_rect.width, pause_rect.height)

pause_rect.left, pause_rect.top = (width - pause_rect.width) // 2, (height - pause_rect.height) // 2

from turtle import *

from random import random, randint

  

os.chdir('E:星空下的告白')

screen = Screen()

width, height = 900, 700

screen.setup(width, height)

screen.title("浪漫的流星雨")

screen.bgcolor("black")

screen.mode("logo")

screen.delay(0)

printer = Turtle()

printer.hideturtle()

printer.penup()

printer.color('red')

printer.goto(-100, -350)

printer.write("宇宙广阔(弱水三千)""\n\n", move=True, align="left", fOnt=("Italic", 30, "bold"))

printer.goto(-50, -400)

printer.write("只寻你一颗!(只取一瓢饮!)\n\n", move=True, align="left", fOnt=("Italic", 30, "bold"))

t = Turtle(visible=False, shape='circle')

t.pencolor("white")

t.fillcolor("white")

t.penup()

t.setheading(-90)

t.goto(width / 2, randint(-height / 2, height / 2))

stars = []

for i in range(300):

    star = t.clone()

    s = random() / 3

    if s > 0.01 and s <0.03:

        star.pencolor("black")

        star.fillcolor("black")

    elif s > 0.03 and s <0.04:

        star.pencolor("lightcoral")

        star.fillcolor("lightcoral")

    elif s > 0.05 and s <0.1:

        star.pencolor("green")

        star.fillcolor("green")

    elif s > 0.15 and s <0.16:

        star.pencolor("yellow")

        star.fillcolor("yellow")

    elif s > 0.19 and s <0.2:

        star.pencolor("red")

        star.fillcolor("red")

    elif s > 0.21 and s <0.22:

        star.pencolor("purple")

        star.fillcolor("purple")

    elif s > 0.29 and s <0.3:

        star.pencolor("darkorange")

        star.fillcolor("darkorange")

    elif s > 0.31 and s <0.32:

        star.pencolor("red")

        star.fillcolor("yellow")

    elif s > 0.32 and s <0.33:

        star.pencolor("yellow")

        star.fillcolor("white")

    star.shapesize(s, s)

    star.speed(int(s * 30))

    star.setx(width / 2 + randint(1, width))

    star.sety(randint(-height / 2, height / 2))

    # star.showturtle()

    stars.append(star)

i = 0

pause = False

while True:

    i += 0

    for star in stars:

  

        star.setx(star.xcor() - 3 * star.speed())

        if star.xcor() <-width / 2:

            star.hideturtle()

            star.setx(width / 2 + randint(1, width))

            star.sety(randint(-height / 2, height / 2))

            star.showturtle()

    if i >= 100:

        break

  

    # 查找队列事件

    for event in pygame.event.get():

        # 查找点击关闭窗口事件

        if event.type == QUIT:

            sys.exit

        # 查找鼠标左右击事件

        if event.type == MOUSEBUTTONDOWN:

            if event.button == 1:

                pause = not pause

            if event.button == 3:

                pause = not pause

  

        if event.type == KEYDOWN:

            if event.key == K_SPACE:

                pause = not pause

    screen1.fill(bg_rgb)

    if pause:

        pygame.mixer.music.pause()

        screen1.blit(pause_image, pause_rect)

    else:

        pygame.mixer.music.unpause()

        screen1.blit(play_image, pause_rect)

    pygame.display.flip()

    clock.tick(30)

更多相关技术内容咨询欢迎前往并持续关注编程了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。


推荐阅读
  • 本文详细介绍了如何将After Effects中的动画相机数据导入到Vizrt系统中,提供了一种有效的解决方案,适用于需要在广播级图形制作中使用AE动画的专业人士。 ... [详细]
  • VMware 15.5.7 中文版激活方法
    本文提供了一种有效的方法来激活 VMware 15.5.7 的中文版本,同时介绍了如何利用最新的激活码进行操作,确保用户能够顺利使用。 ... [详细]
  • 构建Python自助式数据查询系统
    在现代数据密集型环境中,业务团队频繁需要从数据库中提取特定信息。为了提高效率并减少IT部门的工作负担,本文探讨了一种利用Python语言实现的自助数据查询工具的设计与实现。 ... [详细]
  • 本文详细介绍了如何在本地环境中安装配置Frida及其服务器组件,以及如何通过Frida进行基本的应用程序动态分析,包括获取应用版本和加载的类信息。 ... [详细]
  • 使用Pandas DataFrame探索十大城市房价与薪资对比
    在本篇文章中,我们将通过Pandas库中的DataFrame工具,深入了解中国十大城市的房价与薪资水平,探讨哪些城市的生活成本更为合理。这是学习Python数据分析系列的第82篇原创文章,预计阅读时间约为6分钟。 ... [详细]
  • Cadence SPB 16.5 安装指南与注意事项
    本文提供了详细的 Cadence SPB 16.5 安装步骤,包括环境配置、安装过程中的关键步骤以及常见问题的解决方案。适合初次安装或遇到问题的技术人员参考。 ... [详细]
  • 本文探讨了Web API 2中特性的路由机制,特别是如何利用它来构建RESTful风格的URI。文章不仅介绍了基本的特性路由使用方法,还详细说明了如何通过特性路由进行API版本控制、HTTP方法的指定、路由前缀的应用以及路由约束的设置。 ... [详细]
  • 深入探讨Web服务器与动态语言的交互机制:CGI、FastCGI与PHP-FPM
    本文详细解析了Web服务器(如Apache、Nginx等)与动态语言(如PHP)之间通过CGI、FastCGI及PHP-FPM进行交互的具体过程,旨在帮助开发者更好地理解这些技术背后的原理。 ... [详细]
  • 正文♦时间复杂度:\(\mathcal{O}(n)\)思维题,不需要建树。设数组\(a\)记录每一个节点是否尊重它的父节点,数组\(b\)记录是否有节点尊重它,特别的,叶子节点必然 ... [详细]
  • 本文主要解决了在编译CM10.2时出现的关于Samsung Exynos 4 HDMI HAL库中SecHdmiV4L2Utils.cpp文件的编译错误。 ... [详细]
  • 本文探讨了Codeforces 580C题目——Kefa与公园的问题,深入分析了如何在给定条件下帮助Kefa找到合适的餐厅。 ... [详细]
  • AB PLC与西门子S7-1200以太网通信详解
    本文探讨了在工业自动化领域中,如何实现AB PLC与西门子S7-1200之间的直接以太网通信。文中详细介绍了通信的基本原理、配置步骤及编程技巧,为工程师提供了实用的操作指南。 ... [详细]
  • 探讨了生成时间敏感的一次性伪随机密码的方法,旨在通过加入时间因素防止重放攻击。 ... [详细]
  • 行为设计模式:命令模式详解
    命令模式是一种行为设计模式,它通过将请求封装为对象,使得可以使用不同的请求来参数化客户端,支持请求的排队、日志记录以及提供命令的撤销和恢复功能。 ... [详细]
  • 本文探讨了如何利用数组来构建二叉树,并介绍了通过队列实现的二叉树层次遍历方法。通过具体的C++代码示例,详细说明了构建及打印二叉树的过程。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有