利用下班的空暇时间写了一段关于中秋节的代码,可以实现自动绘制山川、运毒和月亮,以及写出美好的诗句,让你深切陶醉于中秋佳节的节日气氛中。本文中主要是使用到了Python中的turtle库、time库以及pygame库,可以更好的实现动态的效果。我们可以使用 turtle 库绘制月亮、云朵、山以及古诗,游戏模块使用 pygame 库,配上美美的背景音乐。
1. 导入所需要的库(turtle 库、time 库、pygame 库)
1 ''' 2 Function: 中秋赏月 3 Author: 向阳逐梦 4 ''' 5 import turtle 6 import time 7 import pygame
使用 import 导入需要使用的函数库,实现需要的功能。本文章实现的功能是绘制月亮、云朵和山川的图案和显示古诗句。
2. 绘制月亮和云朵
1def drawMoon(): #绘制月亮 2 turtle.penup() #画笔拿起 3turtle.goto(-150, 0) 4turtle.fillcolor((255, 215, 0)) #圆月的颜色 5 turtle.pendown() #画笔放下 6turtle.begin_fill() 7 turtle.circle(112) 8 turtle.end_fill() #turtle.begin_fill()到turtle.end_fill() 颜色填充 9def drawCloud(): #绘制云朵 10turtle.penup() 11turtle.goto(-500, 200) 12 turtle.fillcolor((245, 245, 245)) 13turtle.pencolor((255, 255, 255)) 14turtle.pensize(5) 15turtle.pendown() 16 turtle.forward(250) 17 def cloud(mode='right'): 18for i in range(90): 19turtle.pensize((i+1)*0.2+5) 20 turtle.right(1) if mode == 'right' else turtle.left(1) 21turtle.forward(0.5) 22for i in range(90): 23turtle.pensize(90*0.2+5-0.2*(i+1)) 24turtle.right(1) if mode == 'right' else turtle.left(1) 25turtle.forward(0.5) 26 cloud() 27turtle.forward(100) 28cloud('left') 29 turtle.forward(600) 3. 绘制山川??????
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() 4. 添加合适的背景音乐???????
def initTurtle(): pygame.mixer.init() pygame.mixer.music.load('zqbg.mp3') pygame.mixer.music.play(-1, 20.0) turtle.hideturtle() turtle.setup(1000, 600) turtle.title('中秋赏月') turtle.colormode(255) turtle.bgcolor((193, 210, 240)) turtle.speed(10)
?
??????
5. 添加合适的古诗句
def writePoetry(): turtle.penup() turtle.goto(400, -150) turtle.pencolor((250, 240, 230)) #古诗句 potery = ["\n人\n有\n悲\n欢\n离\n合","\n月\n有\n阴\n晴\n圆\n缺","\n但\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])
6. 调用主函数???????
def main(): initTurtle() drawMoon() #绘制月亮 drawCloud() #绘制云朵 drawMountain() #绘制山 writePoetry() #写诗 turtle.done()
if __name__ == '__main__': main()
7. 背景音乐下载地址
链接:pan.baidu.com/s/1VI5WIDeO…提取码:4ry4
8. 编译软件截图
?9. 代码运行截图
?10. 在 pycharm 中导入 pygame 库
(1)打开 pycharm 找到 file;
?(2)找到 setting 这个选项;
?(3)打开 setting 后,在窗口的搜索栏中搜索 project,找到你所对应的项目,点击下面的 python interpreter;?
?(4)点击 python Interpreter 后可以看到该项目所导入的库,找到+号点击;
?(5)点击+后但弹出的窗口可以看到可安装的库,搜索 pygame,安装对应模块一般只安装第一个即可,点击 install package 即可进行安装,等一会则安装完成,项目中即可正常使用 pygame 库,若没有 pygame,则有可能是你的 pycharm 还没有这个库,需要进行安装;
?(6)验证是否导入成功,在对应项目中 import pygame 若没有报错则导入成功;
?
? ? ?最后你的项目就可以正常编译,并运行看到实际效果了。
?
?
?
? ? ? ? ? ? ??
?
|