#|你值得拥有——流星雨下的告白(Python实现)

目录
1 前言
2 霍金说移民外太空
3 浪漫的流星雨展示
4 Python代码

1 前言
我们先给个小故事,提一下大家兴趣;然后我给出论据,得出结论。最后再浪漫的流星雨表白代码奉上,还有我自创的一首诗。开始啦:
#|你值得拥有——流星雨下的告白(Python实现)
文章图片


2 霍金说移民外太空

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

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

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

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

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

就算有行星有没有宜居行星、类地行星。这我们还全然不知道。我们就假定那个地方有好了另一个地球,你按照今天人类火箭和卫星的最高速度,你单程从地球上飞到比邻星,需要一万五千年到三万年。
【#|你值得拥有——流星雨下的告白(Python实现)】请注意我们文明史,文明有文字,以后的文明迄今才五千年,你单程飞到那个地方要一万五千年以上。我说过有没有行星都不知道。这个前途存在吗?根本不存在。就像外星人来不了我们这儿一样,我们也到不了任何外星存在。

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

#|你值得拥有——流星雨下的告白(Python实现)
文章图片

动态视频最近几天由于后台服务器升级,所以视频过几天我上传上来。

4 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, randintos.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 pauseif 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)


    推荐阅读