当前课程知识点:Python 交互式程序设计导论 >  第4周 >  B 课程视频(键盘控制) >  速度控制

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

速度控制在线视频

速度控制

下一节:运动

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

速度控制课程教案、知识点、字幕

在上节课中,我们给大家讲解了如何使用键盘来控制小球的半径和方向

那么在这节课中,将对上节课的例子进行一个改进,我们将使用新的控制

改变小球的半径和方向

好,下面开始我们今天的课程

那么在这里我们先回忆一下我们上节课的例子,我们先来运行下

那我们按键盘上的上下左右,来改变小球的半径和位置

当我摁下向上键的时候,小球的半径会增加,

那么它不会因为我始终按着向上键,小球的半径一直增加

只有我不断的点击向上,小球的半径才会不断的增加

当我按下向左键的时候,小球的半径(位置)会向左移

当我不断的点击向左键的时候,那么小球的, 水平坐标才会不断的向左移动

那我们看到在我们的右侧呢,我们将小球的 圆心坐标和半径大小进行了输出

我每点击一次向上箭头,小球的半径就改变一次

每点击一次向左的按钮,那么小球的水平坐标就改变一次

下面我们看一下,我们怎么样使用新的控制来改变 小球的半径和水平坐标位置

那么对小球位置和半径的控制呢,我们在刚才讲的例子当中

我们在绘制函数中,没有进行更新,只是在键盘响应函数里,

对它的位置和半径进行了更新,当我按下向上箭头, 那么小球的半径增加一个变化量

那么当按下向下箭头的时候,小球的半径减少一个变化量

当按下向左箭头的时候,那么也就是说它的中心点的 水平坐标减少一个变化量

当我按下向右箭头的时候,小球的中心坐标,也就是它的圆心, 水平坐标增加一个变化量

那么这是我们刚才讲的这种控制,那么它是指在, 键盘响应函数里进行了位置和半径的更新

在绘制函数里面要进行更新,那么我们新的控制是, 我们要将小球的半径和它的水平坐标位置

在绘图函数里进行更新,那么更新是这样的讲的, 我们新增加了两个变量

也就是我们小球半径的变化速度和中心位置的偏移量的一个变化速度

那么这两个值是在哪里改变的呢,我们是在键盘响应函数里进行更改

当我按下向上箭头的时候,我会增加小球半径的变化速度

当我按下向下箭头的时候,我会减少小球半径变化速度

当我按下向左箭头的时候,那么我们小球的中心点, 水平位移有一个变化速度,我们会给它减少

当我按下向右箭头的时候,那么我给它增加一个变化速度, 那我们看看,如果我们这样

对它进行了一个更新,我们的小球是怎么变化的, 我们看一下我们实际代码的一个执行

下面我们来看一下我们改进后的一个例子

那么,在全局变量声明里面,我们增加了两个变量, 一个是小球半径的变化速度,我们设初始值为0

另一个是小球水平坐标改变的一个变化速度,我们设初始值也为0

那么在键盘响应函数里面,我们更新的是, 刚才我们新增加的这两个全局变量

为了不让小球跑出我们的边界,我们对小球呢,进行了一些限制

当我按下向上箭头的时候,我的小球半径变化速率增加一个变化量

当我按下向下箭头的时候,那么我的小球半径减少一个变化量

当我按下向左箭头的时候,那么我的水平坐标的 一个变化速率是减少一个变化量

因为我是向左移动,所以我的水平坐标应该是一个减少值

当我按下向右箭头的时候,那我们的水平坐标的 一个变化速率是加上一个变化量

那么为了让大家可以看到我只是点了一下向上或者是向下

松开键盘以后,那么我的小球仍然是在变化的, 我们这里定义了一个key_up事件

那么在这里面,我没有定义任何的代码,也就是我只定义了这样一个

键盘释放这样一个函数,那么只要我一松开,它就会显示,我已松开该键

那我们在绘制函数里面呢,我们对小球半径和 小球中心坐标、水平分量进行了一个更新

这两行代码呢,主要是对它进行了一个限制,下面的跟前面的都一样

那我们来运行一下,看看它运行的效果

大家注意看,框架左侧的状态栏,当我点击, 键盘上的上下左右时,那么在它的状态栏

会显示我按下的按键,当我点击向上按钮的时候, 那么我的小球半径在不断的增加

大家可以注意看到,那么我始终显示的是, ???就是我没有松开向上箭头

那如果我松开呢?大家可以看到,那么小球的半径还是在增加, 因为我对小球经行了一个限制

就是不要出我的边界,所以当它变到最大的时候,它停止了增加

当我按下向下箭头,我很快就松开了向下箭头, 那么大家可以看到,即使我松开,

小球的半径也在不断的减小,当我再次看下向上键,小球停止了减少

当我按下了向左按钮,小球在不断的向左移动,我再次按下向左箭头

大家可以感觉到小球向左的速度有一点点细微的变化,似乎是变快了

当我再次看下向右按钮,再次按下向右按钮, 大家可以看到,小球向右的速度是越来越快

我再次按下向左按钮,小球在慢慢的向左移动, 大家可以看到,它输出的圆心坐标是[578.0,300.0]

半径是21.5,当我第二次按下向右按钮,那么在输出里面我们可以看到

圆心从[578.0,300.0]变成了[101.0,300.0], 那么半径没有变化,也就说,当我两次按下

第一次按下向左,第二次按下向右,这个之间, 我没有做任何操作,但是呢我的小球半径呢

小球的水平坐标呢,是从578变到了101,那么这是怎么操作呢, 就是当我第一次按下向左按钮的时候

那么它的水平分量,它的变化速度有一个值, 因为我的绘制函数是以每秒钟60次的速度在更新这画布

那也就是说,我们在这个里面还更新了一个, 小球的向左和小球的半径,这样的变化

那么半径是没有任何变化,但是它的向左呢,每秒钟60次, 每一次呢是以两个像素在不断的变化

那么在这个之间,它的调用就使得我们的小球的水平分量从578变到了101

通过前面的,上一个列子,我们对小球的控制, 以及这节课我们对小球的另一种控制

大家可以看到,我们在画布上,我们对我们的对象, 那么对它的控制可以用不同的方式去控制

也可以在绘制函数里进行控制,那么也可以在键盘响应函数里面进行控制

那么不同的控制,最终的到的效果是不一样的, 大家下去对这两个例子多加实验和练习

掌握其中的主要精髓,好,今天的课我们就到这,我们下次课再见

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周--小测验

-本周项目:守卫家园

--游戏说明

--程序说明

--编程步骤

--评分标准

--项目模板

速度控制笔记与讨论

也许你还感兴趣的课程:

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