当前课程知识点:Python 交互式程序设计导论 >  第3周 >  B 课程视频(计时器) >  “神奇时钟”游戏

返回《Python 交互式程序设计导论》慕课在线视频课程列表

“神奇时钟”游戏在线视频

“神奇时钟”游戏

下一节:编程技巧

返回《Python 交互式程序设计导论》慕课在线视频列表

“神奇时钟”游戏课程教案、知识点、字幕

同学们,大家好,欢迎来到Python交互式程序设计导论mooc课堂

这一讲,给大家介绍第三周的游戏"神奇的时钟“

当然,时钟,是大家很熟悉的一个日常用品,我们手上戴的手表,也是时钟的一种,我们的手机上也有时钟

计算机电脑也有时钟,很多家里的墙上挂的也有时钟

这一讲,我开始讲如何来完成这个项目

好,首先打开我们的mooc网站,阅读网站上提供的文档,熟悉这个项目的要求

时钟的界面,大家已经看到了

然后,了解这个程序的名称叫做clock.py

这是Python文件的名称

然后,阅读编码的步骤

根据步骤来完成我们的代码编辑

把下面的模板拷贝到pycharm里面去, 就可以开始了

我们看一下,拷过来的模板是这样的

在你动手编写程序之前,先注意看一下

我们提供了四个图片资源和一个声音资源

好, 现在看第一个图片资源,是时钟面板的图片

我们把这个地址拷贝下来,打开浏览器,把它拷贝到浏览器的地址栏

然后回车,看一下,好,这是时钟的面板

注意看一下它的大小,格式是jpg,大小是600*600个像素

也就是一个正方形的时钟面板,宽度600个像素,高度600个像素

好,我们把它拖到桌面

然后再看第二个图片资源,我们也拷贝下来

这是时钟上面的时针,它的上面的图片,看一下,在左侧看到时针这个图片

注意,它的大小呢,是16个像素的宽度,600个像素的高度

这个高度是和我们时钟面版的高度是一样的,也把它拷下来

接着再来看第三幅图片资源,这是分针的图片,我们也把它在浏览器里打开看一下

分针要比时针长一些,同时窄一些,实际上,它的大小,可以看到,宽度12个像素,高度600个像素

我们也把它拖到这里,再看最后一个图片,是秒针的图片资源,拷贝下来

放到这里 ,可以看到,这是秒针的图片,它的大小,宽度是30个像素,高度也是600个像素

把它拖到桌面,这是我们游戏当中要用到的四个图片资源

好的,先打开时针的图片,我们让它显示缩略图

可以看到整个图片的高度,600个像素,其中绿色部分,显示的部分,高度没那么多

而剩下的两端是透明的,所以,在它的画面上我们看不着

实际上,它的高度是600个像素

好, 再来看分钟的图片,也是显示缩略图

我们可以看到,秒针,显示缩略图,这是秒针的图片

最后是时钟面板的图片,我们也把它显示缩略图

好,现在,放在一起,这四幅图放在一起

大家可以注意到,面板600*600像素,正方形,时针,分针,秒针

因此,我们可以认为,只需要定期的,按一定角度旋转时针,分针,秒针,就会产生我们需要的时针效果

接下来,看另外一个资源,还有一个声音资源,播放音效的资源

我们把它拷贝下来,这个地址,注意,这时候,我用的是 浏览器

拷贝进去,直接按回车,可以听到这个音乐的播放效果

好,这样以来, 就说明,我们所有要的这五个资源,网络上都是存在的,访问都没有问题

下面开始做,我们的编码工作

先看一下,我们要完成的几个函数

第一个是获取时间,第一个辅助函数

第二个是按钮事件的处理函数,开启或关闭数字显示的效果

第三个函数是,开启或关闭音乐播放

第四个是时钟事件或者是定时器事件调用的函数

第五个函数,是我们绘制整个时钟的函数屏幕刷新事件

当然,我们还要创建窗口框架,注册事件处理函数

启动时钟,调用一次我们已经完成的gettime

最后启动窗口,这些代码,在前面,我们已经都讲过

这里,要给大家说明,在gettime里面,我们应该考虑这里导入的daytime这个Python包

假设我们用dt来保存daytime,它有一个方法,叫做now(),取出当前的时间, 准确的说,就是取出当前这台计算机的时钟上面,我们这条语句执行的时候,它的时间

一旦有了这个dt以后

dt里面有当前这个时间的年度,dt里面有当前这个时间的月份,dt里面有当前这个时间的日期,dt里面有当前这个时间的小时

当然,还有分钟,还有秒针,以及毫秒

有了这些值,我们就可以计算我们的时钟上面时针,分针,秒针,它应该旋转多少角度,来绘制,以实现整个时钟在运转的效果

同时,也可以计算出,我们要数显的这些信息,数字显示的年月日 时分秒以及十分之一秒等等

剩下的,就是要完成其它的一些函数

这里,我不去多讲了,大家去阅读文档

可以看到文档里的要求,可以按照这些要求去做

还要提一下,就是, 屏幕刷新函数里面,我们应该首先绘制时钟的面板,然后判断是不是需要进行数显

如果要数显,就绘制数显的文字信息,然后,绘制时针,接下来绘制分针,最后绘制秒针

这是因为,在画布上,按照屏幕的方位,有x轴和y轴,而我们人眼基本上是垂直看屏幕的, 因此,我们垂直于x轴和y轴

垂直于这个屏幕的是z轴,先画的是离我们最远的地方,后画的是靠近的地方,准确的说,后画的图像会覆盖先画的图像

因此,这个顺序是很重要的

好了,另外,我们游戏当中有一个按钮,就是播放音乐这个按钮,它有一些特别

正常情况下,一开始程序运行,按下的显示播放音乐 ,我们点它的时候 musicbox,音乐会播放

这时候,要停止播放音乐,这时,我们按钮上的文字,也会显示,停止播放音乐

你要用鼠标点击这个按钮,停止音乐播放

不是任何时候点它都会停止的,而是需要你点整秒上的,也就是说 十分之一秒变成0的时候,这时候才能停止

好,这是我们这个神奇时钟特别的地方

下面,我们看一看,完成的最终运行效果会是什么样子

点击运行,注意看,我们程序运行起来后,一个正常的时钟在运转,这时候,它上面显示时分秒是正常的时间

就是现在是什么时间它就是什么时间,当然,这是由计算机的时间来决定的 你的计算机的时间是准的,那时钟就是准的

好,我们开启数显,关闭数显,开启数显,点击播放音乐

注意要关闭音乐,随意点,是不会关闭的,只有当十分之一秒为0的时候,也就是整秒的时候,我们点击关闭音乐这个按钮 才 关闭音乐的播放

好,现在一旦点中以后,这时候,我们的时钟也停止了运转

时针,分针,秒针,都停止了,数显也停止了

注意,我们再点击播放音乐,正常开始,而且,这个时间还是正确的,现在的时间依然是正确的, 它不会把我们点击的那个时间错误的计算在内

任何时候,你只要重新开始,它的时间都是准确的

好了,这一讲,就这多内容,谢谢大家观看,咱们下次再见

Python 交互式程序设计导论课程列表:

第0周

-课程简介

--课程简介

-A 课程视频(算数操作符及表达式)

--绪论

--Python交互式解释器使用方法

--PyCharm集成开发环境介绍

--算数操作符及表达式

-B 课程视频(变量及赋值)

--变量

--项目提交

--“我喜欢Python”热身小项目

-C 辅助视频(计算机结构、Python开发环境安装)

--Windows平台安装Python开发环境

--Mac平台安装Python开发环境

-D 辅助视频(如何提交项目)

--项目提交

-第0周--小测验

-本周项目:"我喜欢Python"

--项目发布、完成、提交及评分流程

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

--项目提交

第1周

-A 课程视频(函数)

--函数

--其它操作符

--随机函数

-B 课程视频(逻辑及表达式)

--逻辑值和比较

--条件

--编程技巧

--“老虎杠子鸡虫”游戏

-第1周--小测验

-本周项目:“老虎杠子鸡虫”游戏

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第2周

-A 课程视频(Python交互式应用)

--事件驱动编程

--事件可视化跟踪执行

--SimpleGUITk

--按钮

-B 课程视频(输入框、全局变量)

--输入框

--局部变量和全局变量

--编程技巧

--“猫咪藏在哪个房间”游戏

-第2周--小测验A

-第2周--小测验B

-本周项目:猫咪藏在哪个房间

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第3周

-A 课程视频(画布绘图)

--画布和图形绘制

--字符串处理

--绘图和计时器可视化跟踪执行

--图片和音效

-B 课程视频(计时器)

--计时器

--交互式绘图

--“神奇时钟”游戏

--编程技巧

-第3周--小测验A

-第3周--小测验B

-本周项目:“神奇时钟”

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第4周

-A 课程视频(列表)

--列表

--键盘输入

--列表及变化可视化跟踪执行

--碰撞和反射

-B 课程视频(键盘控制)

--速度控制

--运动

--编程技巧

--“桌上冰球”游戏

-第4周--小测验A

-第4周--小测验B

-本周项目:“桌上冰球”游戏

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第5周

-A 课程视频(鼠标输入、列表进阶)

--鼠标输入

--Video

--Video

--Video

-B 课程视频(字典和图片)

--Video

--Video

--Video

--Video

-第5周--小测验A

-第5周--小测验B

-本周项目:“世界杯八强连连看”

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第6周

-A 课程视频(类)

--面向对象编程(类和对象入门)

--面向对象编程(类和对象进阶)

--对象可视化跟踪执行

--华容道中的类

-B 课程视频(平铺图片)

--平铺图片

--理解对象

--编程技巧

--“华容道”游戏

-第6周--小测验A

-第6周--小测验B

-本周项目:“华容道”游戏

--游戏说明

--程序说明

--编码步骤

--评分标准

--项目模板

第7周

-A 课程视频(类进阶及文件操作)

--集合

--文件操作

--文字块类

--处理停止的文字块

-B 课程视频(游戏状态控制)

--游戏记分规则

--游戏结束的条件及处理

--编程技巧

--“决战三字经”游戏

-第7周--小测验A

-第7周--小测验B

-本周项目:决战三字经

--游戏说明

--程序说明

--编程步骤

--评分标准

--项目模板

第8周

-A、课程视屏(精灵集合)

--Video

--精灵类

--战士类

--编程技巧

-B、课程视屏(动画)

--精灵碰撞

--精灵动画

--编程技巧

--保卫家园游戏

-第8周--小测验

-本周项目:守卫家园

--游戏说明

--程序说明

--编程步骤

--评分标准

--项目模板

“神奇时钟”游戏笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。