生日python十种日期格式_皮皮学编程(2):生日小礼物

90d92f689e5c982e5d28a96e1b9b1fba.png

今天(9月13日)是皮皮的生日,为了给正在开始学习Python的皮皮一个小惊喜,准备用Python做个小程序送给他。

初始想法

开始的想法是使用PyGame来做个简单的RPG游戏,游戏中,主人公“皮皮”将会在一个秘密宫殿中寻找“宝箱”,再经过一系列神秘的关卡、回答了一些“数学”和“音乐”问题后,皮皮终于找到了宫殿最里层的“大宝箱”,打开宝箱,屏幕会放出烟花,并打出“皮皮,生日快乐!”

原因是:

  • 皮爸之前也是一个游戏爱好者,曾经很喜欢RPG类型游戏
  • 皮皮最近一年也很迷“寻宝记”这个儿童系列探险丛书

想法落地受阻

想法虽好,不过是否可以落地主要还要看皮爸是否能在github上找到类似项目。

啥?有了想法不是应该马上打开IDE开始开发吗?

不要着急动手,先分析一下现实情况:

  • 虽然皮爸编程多年,但是Python用的还不是很多,而且从没有编写过游戏
  • 皮爸平时工作也很忙,找不到时间来从头编写一个游戏,能利用的时间只有本周六晚上

所以,需要借助一个神奇的网站“github”来寻找一个类似项目,把它改成适合皮皮生日的。

不过搜索了一会,发现PyGame的RPG虽然有,不过没有找到比较合适的。能有项目介绍的,一般都是那种“巨型项目”,估计能看懂代码就需要一两天完整的时间。

想象很美好,现实很骨感。不过不要气馁,办法总比困难多。那我是不是能换个主题,搜索一下“Python” + “Happy Birthday”呢。于是:

发现可行项目

通过搜索,发现了一个很匹配的项目: https://github.com/borninfreedom/HappyBirthday 《用python制作的送给女票的生日礼物》。 其原始演示视频:https://www.bilibili.com/video/BV1R7411C7A1

哇,感觉可行:

  1. 代码简单
  2. 项目主要使用 python 的 turtle库来绘制生日蛋糕和最后的小人,而皮皮之前也用turtle做过一些图形,皮皮应该对这个库比较感兴趣。

这个项目的程序运行后,会分为3个部分:

  • 部分一:在照片上逐行打印几句煽情的话。
  • 部分二:绘制生日蛋糕和烟花
  • 部分三:绘制一下小人

开始修改代码

于是开始修改代码,修改后,仍为3部分

  • 部分一:仍然是照片上打印上几句话的形式。但是替换为类似PPT的方式,就是每打印一句话,背景换为皮皮不同年龄的照片。
  • 部分二:基本保持不变,修改一下文案,稍微替换了一下背景色
  • 部分三:绘制的小人还是挺有意思的,修改了一下文案,其它保持不变

另外替换了一下各个部分的背景音乐,第一部分换成了“You are my sunshine”,后面选了两种不同风格的“生日快乐”歌。

期间也遇到了一些问题,比如:Mac下的PyGame播放不了 mp3 格式的背景乐, tutle不能使用PNG或JPEG格式的图片作为背景。

  • 经过网上搜索,发现Mac下Python 3.8安装的版本, PyGame只能播放 .wav 格式的音乐,而 turtle 则只能读取 .gif 格式的图片
  • 于是,使用Mac下的 VLC 把网上下载的MP3文件转为WAV文件
  • 使用Mac下的 PicGIF 软件把 PNG图片转为了GIF图片文件

最终、终于利用周六完成了程序。效果片段如下(去掉了部分一,并对程序进行了加速):

知乎视频​www.zhihu.com

演示环节

周日早上告诉皮皮说爸爸要送个Python程序给他当礼物,果然,皮皮很感兴趣,迫不及待拉着大家坐在沙发上准备观赏。

整体效果不错,皮皮也挺开心,虽然最后说:爸爸,别忘了下次也要给我编“打飞船”那个游戏哦。看来贺卡对你的吸引力比游戏还是差点,爸爸下次加油!

皮皮,生日快乐!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值