如何用Python代码绘制赏月美景?
【摘要】 我们可以使用turtle库绘制月亮、云朵、山以及古诗,游戏模块使用pygame库,配上美美的背景音乐。1. 导入所需要的库(turtle库、time库、pygame库)'''Function: 中秋赏月Author: 向阳逐梦微信公众号: maker星球'''import turtleimport timeimport pygame使用import导入需要使用的函数库,实现需要的功能。本文章...
-
我们可以使用turtle库绘制月亮、云朵、山以及古诗,游戏模块使用pygame库,配上美美的背景音乐。
1. 导入所需要的库(turtle库、time库、pygame库)
'''
Function: 中秋赏月
Author: 向阳逐梦
微信公众号: maker星球
'''
import turtle
import time
import pygame
-
使用import导入需要使用的函数库,实现需要的功能。本文章实现的功能是绘制月亮、云朵和山川的图案和显示古诗句。
2. 绘制月亮和云朵
def drawMoon(): #绘制月亮
turtle.penup() #画笔拿起
turtle.goto(-150, 0)
turtle.fillcolor((255, 215, 0)) #圆月的颜色
turtle.pendown() #画笔放下
turtle.begin_fill()
turtle.circle(112)
turtle.end_fill() #turtle.begin_fill()到turtle.end_fill() 颜色填充
def drawCloud(): #绘制云朵
turtle.penup()
turtle.goto(-500, 200)
turtle.fillcolor((245, 245, 245))
turtle.pencolor((255, 255, 255))
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)
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. 程序运行所需要的背景音乐下载地址
链接:https://pan.baidu.com/s/1VI5WIDeOMYE_KjMKsRqHCQ?pwd=4ry4提取码:4ry4
-
编写代码使用的软件是pycharm,使用软件之前需要进行软件的环境配置。还需要下载需要的库函数,实现需要的功能。
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若没有报错则导入成功;
最后你的项目就可以正常编译,并运行看到实际效果了。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)