用Python在中秋节来临之际,带大家一起赏个月前言开发

我正在参加中秋创意投稿大赛

前言

提前大家月饼节快乐呀~

我们今天就用python赏一波月吧~

废话不多说,让我们愉快地开始吧~

开发工具

Python ** 版本:3.6.4

相关模块:

pygame模块;

以及一些python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

原理简介

原理其实很简单,先在网上找幅感觉简约(不简约点用turtle库不好画T_T)好看的赏月图,然后利用turtle库模仿着画就行了。

首先是初始化(加载应景的音乐等等

'''初始化'''
def initTurtle():
  pygame.mixer.init()
  pygame.mixer.music.load('bgm.mp3')
  pygame.mixer.music.play(-1, 20.0)
  turtle.hideturtle() 
  turtle.setup(1000, 600)
  turtle.title('中秋和皮卡丘一起赏月~')
  turtle.colormode(255)
  turtle.bgcolor((16, 78, 139))
  turtle.speed(10)
复制代码

然后画月亮(其实就是画了个圆图片):

'''画月亮'''
def drawMoon():
  turtle.penup()
  turtle.goto(-150, 0)
  turtle.fillcolor((212, 175, 55))
  turtle.pendown()
  turtle.begin_fill()
  turtle.circle(112)
  turtle.end_fill()
复制代码

然后是5毛钱特效的云(图片):

'''画云'''
def drawCloud():
  turtle.penup()
  turtle.goto(-500, 200)
  turtle.fillcolor((245, 245, 245))
  turtle.pencolor((220, 220, 220))
  turtle.pensize(5)
  turtle.pendown()
  turtle.forward(250)
  def cloud(mode='right'):
    for i in range(90):
      turtle.pensize((i+1)*0.2+5)
      turtle.right(1) if mode == 'right' else turtle.left(1)
      turtle.forward(0.5)
    for i in range(90):
      turtle.pensize(90*0.2+5-0.2*(i+1))
      turtle.right(1) if mode == 'right' else turtle.left(1)
      turtle.forward(0.5)
  cloud()
  turtle.forward(100)
  cloud('left')
  turtle.forward(600)
复制代码

一毛钱特效的山(图片):

'''画山'''
def drawMountain():
  turtle.penup()
  turtle.goto(-500, -250)
  turtle.pensize(4)
  turtle.fillcolor((36, 36, 36))
  turtle.pencolor((31, 28, 24))
  turtle.pendown()
  turtle.begin_fill()
  turtle.left(20)
  turtle.forward(400)
  turtle.right(45)
  turtle.forward(200)
  turtle.left(60)
  turtle.forward(300)
  turtle.right(70)
  turtle.forward(300)
  turtle.goto(500, -300)
  turtle.goto(-500, -300)
  turtle.end_fill()
复制代码

以及一句传颂千年的中秋祝福(图片):

'''写诗'''
def writePoetry():
  turtle.penup()
  turtle.goto(400, -150)
  turtle.pencolor((255, 255, 0))
  # 诗句
  potery = ["但\n愿\n人\n长\n久\n", "千\n里\n共\n婵\n娟\n"]
  # 诗句位置(可自行设计添加), 最好2/4句五言诗
  coordinates = [(300, -150), (200, -150), (100, -150)]
  for i, p in enumerate(potery):
    turtle.write(p, align="center", font=("STXingkai", 50, "bold"))
    if (i + 1) != len(potery):
      time.sleep(2)
      turtle.goto(coordinates[I])
复制代码

16600f74cad24967ba2e0f0d3af525e3.jpg