本文讲述了python实现流星雨星空特效代码!具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧,具体如下:
我们先给大家讲个小故事,提一下你们的兴趣;然后我给出论据,得出结论。最后再把浪漫的流星雨表白代码奉上,还有我自创的一首诗。
开始啦:
霍金说移民外太空
霍金说我们将来外星上生存;埃隆.马斯克也是这样想的。
我前面讲外星人来不到地球,这个道理已经很清楚。我再说几个数据,大家听听,我们且不要说到更远的外星,我们人类今天登上月球,把一个字航员送上月球,他在月球上待一分钟,要消耗地球一百万美元的资源才能在月球上待一分钟 。
我们说未来在火星上殖民,想想你在月球上一个人待一分钟,要消耗地球一百万美元的资源,你在火星上殖民几千人、几万人,你得把整个地球资源毁灭掉,都调到火星上去。然后你只把七十亿人调过去了几千、几万人,然后他在那可能死得更快,这根本不是出路,这怎么会成为出路呢?
我们再看,移居外星,离我们地球最近的另一个恒星系叫半人马座。半人马座,阿尔法星
也叫比邻星。大家注意,这都是恒星,比邻星距离太阳最近,有多近? 4.2光年,光以每秒钟三十万公里,走4.2年,就这我们还不知道比邻星的那个恒星旁边有没有行星。
就算有行星有没有宜居行星、类地行星。这我们还全然不知道。我们就假定那个地方有好了另一个地球,你按照今天人类火箭和卫星的最高速度,你单程从地球上飞到比邻星,需要一万五千年到三万年。
请注意我们文明史,文明有文字,以后的文明迄今才五千年,你单程飞到那个地方要一万五千年以上。我说过有没有行星都不知道。这个前途存在吗?根本不存在。就像外星人来不了我们这儿一样,我们也到不了任何外星存在。
我们今天连太阳系都没有走出去,没有在太阳系的任何一个行星上殖民,所以移民外星根本不是出路。
浪漫的流星雨展示
看了这两张图,是不是觉得超级浪漫呀~
下面给大家附上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入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。