Tip:
Highlight text to annotate it
X
>> ,ZAMYLA陈:你好,欢迎 到划痕演练。
我的名字是Zamyla,我将领导 今年的演练。
CS50,每一个问题集 伴随着一个演练。
在这些演练中,我就去了 本周的问题集,解释
需要的概念,打破了 问题设置成便于管理的叮咬。
>> 对于第一p设置在CS50,我们实际上 不会打字和
机器代码的东西还相当。
相反,我们要利用Scratch, 程序,允许我们去探索
在编程概念 视觉和创造性的方式。
此演练将探索 我们将使用的基本概念
整个CS50,以及服务 作为划痕教程。
在每一次演练中,我会列出一组 的工具,你可以使用的
问题集。
从较大的课程概念的实际 功能,这是很好的,而且能够帮助
知道你之前配备 解决的问题集。
>> 首先,让我们谈谈精灵。
精灵使 项目从无到有。
每个对象或每一个字符, 无论是猫,狗或
球,被称为精灵。
如果我想要的,说在我的项目中,两只猫, 我需要让两个
单独的精灵,甚至在Scratch 如果他们是绝对相同的。
>> 每个精灵都有相关联的脚本 与特定的精灵。
脚本是你要什么 通过拖动建设
和滴加块。
脚本说明 确定和定义
如何在脚本的行为。
>> 现在,精灵不只是影像。
à精灵服装确定 精灵看起来像什么。
任何给定的精灵可以有 更比一个服装。
位后,在本演练中,我会 告诉你如何在你有你的
精灵的变化服装 在你的程序中。
>> 要创建一个精灵,你可以在Scratch 要么选择其初始服装
划痕的图书馆,绘制自己的 划痕油漆编辑器,
上传自己的形象,或拍摄照片 您的计算机的摄像头。
所有的子画面被放置 就是我们所说的阶段。
舞台就像是我们的画布 精灵可以走动。
>> 虽然我们可以有倍数的精灵, 只能有一个阶段。
否则,舞台精灵是相当 在该阶段可以类似
也有脚本。
在舞台上的脚本是非常有用的 当你不有一个剧本,
不一定有关 一个特定的精灵。
也许它涉及到多个 条纹,或根本没有。
>> 这是总体上是好的设计,放置 如果他们在舞台上的脚本
足够一般不属于 特定的精灵。
就像精灵服饰, 阶段有可以改变的背景
你的程序的过程。
你可以得出你自己的,上传 图像,拍摄一张照片,或使用
背景的划痕库。
阶段和精灵也能起到 声音从划痕的图书馆,或
您可以上传和录制自己的。
>> 要启动临时程序,你就 需要点击绿色标志
舞台窗口的右上角。
但是,如果你不能有任何连接 此块就在这里,再没有什么
究竟要发生,因为你 精灵和阶段需要被告知
响应的事件 绿旗被点击。
所以,你需要附加块 槽底部的绿色
标志,然后程序将执行 当你开始行动
你的程序。
>> 那么,之后呢?
好了,划痕有很多块 供你使用,你可以
甚至自己制作。
你会看到三个选项卡,脚本, 服装和声音。
根据脚本标签类别 报表。
报表方便 举办的颜色。
您有运动有关的行动, 音质,外观等。
虽然你就会有其他块内置 在你的报表,它的
语句,这将有助于精灵或 舞台上做一些事情,而
其他区块将有助于确定 什么时候做。
>> 比方说,你要创建你很 首个项目,你只想要
在某些猫喵 的情况。
要实现这一点,我们可以采取 利用布尔值。
这些表达式,评估 无论是真的还是假的。
划痕,这些所确定的 角度块的末尾。
您将有多种不同类型的 如布尔值是鼠标
被按下,2加2划上等号 5星,或用户按压
倒在键盘上某个键?
>> 现在,你不能随便用 这些单独布尔。
你需要把它们结合起来 就是我们所说的条件。
状态块中可以找到 橙色控制语句。
方便条件有一点点 占位符,显示的形状
你需要的块 投入。
因此,根据的上下文中 情况下,您可以选择一个布尔
将它放在你的病情。
并放在一起,你必须 条件语句。
一旦你把语句 阻止你有结构设置
据此,一旦在一定条件 满足,然后执行这些
语句。
>> 计算机的优点之一是 巨大力量和速度,他们
可以执行重复的过程。
相反的,也就是说,在重复 一遍又一遍,指令
一次实际键入,或 在这种情况下,拖放
拖放,我们 可以做的是封装在一个循环。
>> 循环可以用于执行 事情永远循环无限,
或设定的次数。
例如,重复的说法,说 喜的10倍,或者直到某
条件为真。
这种重复,直到你阻止 看到划痕暗示,
你需要放置一个布尔 重复,直到块,使
条件语句。
>> 现在,我们知道,我们可以封装 内循环的重复过程,
所以你可以看到为什么像 这可能不是理想的。
这是超长的,它只是做 同样的事情一遍又一遍
再次,事实上的10倍。
移动10步,打招呼, 移动10步,说“你好”。
但是,随着循环的帮助下,我们 可以整理一下这一点。
看看这是怎么好得多。
它短,它的体积更小, 完成同样的事情。
>> 移动变量。
变量基本上是 值的容器。
在从无到有,这些类型的值可以 是的话,也可以是
数字,价值观,我们 有控制权。
在这第一个块中,我们有一个 文本包含的变量
价值,你好,世界。
在第二个例子中,它的假设 我们已经有一个变量叫做
计数器和我们正在递增 它由三个。
然后,在最后一个例子中,我们看到 所使用的变量的一个例子
内的条件。
在此块中,我们问如果变量 计数器小于零。
>> 现在,当你创建一个变量,你必须 决定是否使
提供给所有的子画面的变量 在临时程序,或
只是为选择特定的精灵 当您做出变量。
而这是一个非常重要的 做出决定。
归结到一点,什么范围 希望有变量。
>> 一个例子将是一个局部范围 变量只是一个特定的精灵,
这意味着,只有精灵 可以查看或修改它。
如果你确定了一个全球性的变量 选择范围
精灵,那么这意味着,在舞台上, 以及所有的精灵,
将能看到,修改, 和访问,
你已经创建的变量。
而在设计方面,这是最好的 时,您可以选择本地范围
只是,使其余的子画面 和舞台不必担心
该变量的跟踪。
>> 实际上,你可以有两个变量 不同的精灵相同的名称
只要这些是局部变量。
雪碧,一只猫,可以有一个变量 名称计数器,和雪碧两个,一只狗,
也可以有一个变量叫做 只要这些计数器
是局部变量。
由于变量的范围 不会扩展到其余的
方案,并没有其他的精灵 或阶段会感到困惑。
>> 刚才我提到,切入点, 当绿旗点击块。
该块及随附 报表基本上是告诉
你的精灵在舞台上,“确定”,当 点击绿旗,这是
你应该做的。
但是,这并不是唯一的事件, 精灵和舞台可以回应。
我们有,例如,一个事件 当按下键盘的按键。
实际上,你可以选择字母A 到Z,0到9或
箭头键。
>> 有其他事件,也 点击你的精灵时。
当您启动与事件块像 这些,你会发现一个趋势。
他们都有一个单一的组 底部和顶部光滑,
表示,没有什么, 重视该块。
建立在这些事件 块和构建下调。
>> 现在,会发生什么,如果我们想要的一些事件 发生的,也就是说,当猫是
触摸某一部分 的阶段?
实际上,我们没有任何内置的 事件的意味,所以我们会
需要做的是创造我们自己的事件。
这就是所谓的广播。
>> 所以,当你想要的信号, 某些事件已经发生了,那么你
使用一个黑色的称为广播, 被发现在“控制”选项卡。
在那里,你将键入的名称 倘要广播,
那么哪个精灵 阶段反应
广播,如果你愿意的话。
当我收到块告诉 做什么时,他们的精灵
通知您的自定义 事件已经发生了。
所以请记住,只要你播出 一个事件,它是与
理解,即任一 子画面或该阶段将
接收该事件,并作出回应。
>> 现在,最后的概念之前,我们得到 一个实际的例子,在擦除
程序,线程的概念。
这时候,你的电脑是 执行同时
在同一时间的进程。
我敢肯定,我们都采取 利用这一优势。
喜欢在网上冲浪的同时 听音乐。
计算机可以同时执行多项 在同一时间的事情。
>> 在这个例子中,这两个 脚本可以用于
的完全相同精灵。
入口点块,当绿旗 点击,多次使用,但
它们是两个独立的脚本。
事实上,绿旗点击数块 可能会是一个最
流行在你的程序块。
在这里,我们看到,当绿旗 点击,有一个过程
,以及另一个。
因此,划痕会实际运行这些 两个精确地在同一时间。
,知道你其实可以有 一个以上的入口点,即使
它是相同的切入点,是怎么回事 是真正有用的,如果你想
独立的不同的任务 彼此。
>> 好的。
所以,现在我们已经覆盖了所有的这些 的概念,让我们来看看一个例子。
我已经取得了一系列划痕节目, 所以要尽量跟随我们
使一个小游戏。
让我们开始通过开放 饥饿的恐龙零。
>> 让我们点击绿色旗帜开始 它,看看它做什么。
我们有一个错误的精灵,为移动 几步,在一些高度复位,
然后退后。
然后我们有一个恐龙精灵。
按箭头键,我 恐龙周围的精灵,它转
和旋转。
这可以是一种乐趣,但 有没有很多
在此程序的脚本。
我们绝对可以添加到这个。
>> 例如,当恐龙移动 实际上可以关闭屏幕,
几乎从现场消失。
我们想改变这种状况,因为我们 不想恐龙逃脱。
因此,让我们停止我们的脚本与红 标志,然后编辑的恐龙脚本。
请注意,这个特殊的脚本 结束与一个无限循环,
直边。
它不具有任何凹槽 在底部。
这是有道理的 名字,一个永远循环。
它执行的东西无限 将永远不会结束。
所以这是一个很好的机会, 引入线程。
>> 好的。
因此,让我们添加另一个脚本。
我要开始此项 点,当绿旗点击。
我要不断地检查 恐龙是否将是
接触边缘。
运动下有一个整洁的小块 说,如果在边缘反弹。
所以我们要不断 执行此。
>> 这声明是检查是否 子画面上边缘的
阶段,如果是反弹。
因为用户可以随时移动的 恐龙,我们要找到某种
使我们可以不断的循环, 执行这条语句。
寻找控制下,我们会 选择永远环路。
因此,让我们拖动到 恐龙脚本,然后
如果添加边缘反弹。
然后让我们的测试程序。
>> 所以按通常的bug, 那么,如果我们测试我们的新脚本
我们的恐龙移动到边缘, 我们可以看到,它不能
了逃脱舞台。
它反弹回来。
现在,你可能想知道为什么恐龙 反弹,但不是错误。
嗯,这是因为我们写我们的最新 脚本里面的恐龙脚本
而不是错误。
所以错误不会听 说明我们给了恐龙。
>> 好的。
因此,让我们现在添加一些新的东西。
如果你去服装标签,你会看到 不同的服饰,
您选择的精灵来预装 如果你选择了一个从
划痕库。
这个可爱的小恐龙格格 服装,所以让我们来实现的恐龙
摩拳擦掌的时候,我们按 说,太空键。
>> 回到恐龙脚本。
在这个脚本在这里,我已经 检查是否在无限循环
目标箭头键被按下 和移动的恐龙。
如果他们向左键被按下时, 恐龙逆时针旋转。
如果按下向右箭头, 恐龙顺时针方向旋转。
因此,如果向上箭头键被按下,则 恐龙向前进步。
我们可以添加的脚本,而不是 增加一个独立的人,因为这
已经检查的主题 哪些键被按下。
>> 让我们添加一个检查 空格键被按下。
这些块检查 的键被按下。
他们都在明亮的蓝色,所以 让我们去明亮的蓝色感应
报表走一走,看一看。
这里是重点间隔出版社块。
所以我们想要做什么是有恐龙 切换到斩波倒服装
当且仅当,太空 键被按下。
>> 因此,让我们在这里模仿的结构。
现在,改变服装 恐龙看起来如何,所以我们会去
看语句。
果然,我们有一个开关 迪诺Chomp的服装。
现在,当我们格格下来,我们不希望 恐龙咬食永远下跌,
所以,让我们添加一个声明,告诉 它切换回。
它会迅速切换服饰类, 不过,因为在划痕语句
将执行背靠背真 很快,几乎瞬间。
因此,让我们去控制,然后进行 恐龙暂停等待一点点
后一秒,一年要吃掉了。
>> 现在,让的编辑错误雪碧。
错误精灵了五大步骤 步骤一共有五次后
片刻的停顿。
在顶块,这里的bug 本身放置在一定的
X坐标值。
实际上,你可以找到的坐标 鼠标在屏幕上,并
然后在底角的舞台 窗口的坐标将更新
你可以利用这个方便 功能来实现的坐标
你想要的。
而且,在此声明,我们指示 在同一时间开始的bug
X值每一次,而是要选择一个随机 高度的bug仍然
的限制范围内的住宿 的阶段。
>> 看到这里,我趁着 赛事转播的划痕。
此事件处理程序称为新Bug1。
因此,每当错误接收 新Bug1事件,
它会执行该语句。
所以在它前进集 量的时候,它实际上
广播事件Bug1。
>> 但是我们怎么样改变 这个脚本一点点吗?
现在,我们有这个bug 移动五个步骤。
这是不是很多,总 的五倍。
我们真的不知道有多少次会 需要,直到错误达到,
说,最终的屏幕,让我们 作出的,但达到的结尾
屏幕上,但使用某种 其他构造。
>> 我要分开这一点,因为 我们要改变一些东西。
要从头块删除 拖动块
离开,然后松开。
它被删除。
如果你决定,你没有 要删除,那么你可以
去编辑和反删除。
但是,我们也希望得到 摆脱该块。
>> 我们现在要做的是移动,说, 50步和暂停一秒,
重复此操作,直到我们接触 端的屏幕上。
因此,让我们使用一个循环,使我们能够 重复的过程,直到某
符合条件,恰当地 命名重复,直到。
>> 里面的条件 重复,直到?
它告诉我们的东西是否 错误是感人的边缘
屏幕上,这将是下 传感报表。
这里是布尔值,触摸。
你可以在这里选择什么 你要检查。
因此,我们将选择感人的边缘,并添加 这个条件声明英寸的
>> 所以,现在如果我们看我们的错误,它会 再次搬回一旦落到
的阶段的边缘。
太好了。
我们完成了零饥饿的恐龙, 让我们打开饥饿的恐龙之一。
有点像一个烹饪节目,我添加 一点点更多的功能。
例如,你会看到该bug 实际上很简单,现在滑翔
相对于前。
在运动中有这个 滑行语句。
现在,错误的下滑了70个单位 本届博览会的权利,但
停留在相同的y位置。
我们现在可以有一个恐龙咬食 正如我们之前实施。
>> 但是,这一计划不叫饿 翁什么让我们有
恐龙吃缺陷。
我们如何告诉缺陷,或告诉 恐龙,它已经砍下?
我们如何传达此事件?
好吧,我们知道,当我们切换 服装恐龙恐龙格格
我们已经chomped下来。
说,我们希望消失的bug 一旦它吃。
那么,我们将不得不以检查是否 错误已和chomped
沟通的错误,它就会有 隐藏或从屏幕上消失
一旦它被chomped了。
>> 那么,什么样的概念,什么样的 我们可以使用工具有恐龙
通信错误, 它已经chomped下来?
广播。
因此,让我们去活动,并添加 事件播出。
Chomp的。
确定。
但要记住,一旦广播 我们还需要的东西
收到此事件。
所以,精灵将播出格格?
好吧,让我们有恐龙做 当按下空格键。
>> 添加一个块接收格格。
现在,当恐龙归结刚上 一个空的空间,我们不希望的bug
进行反应,在所有,仅当 恐龙是感人的,但当时
格格我们实际上做 做一些事情。
因此,我们将使用的情况下,如果因为 我们检查东西是否是
真的还是假的。
>> 现在,如果我们回去传感,然后 我们可以使用这个触摸
块,然后选择迪诺。
然后,根据长相,我们发现这个隐藏 块,基本上会做出错误
从舞台上消失。
>> 我们将使它隐藏,但我们做的 希望另一个错误,对吧?
我们的恐龙是饿了。
因此,我们希望给它一个 错误追去。
因此,让我们还播出 事件新Bug1。
除了我们要等待一段时间 另一个错误出现之前,让我们
还需要等待一秒钟。
>> 好的。
因此,让我们检查了这一点。
我们机械地咬着了,但消失, 一个又一个的出现,我们格格
它再次。
这看起来像一个漂亮的 好玩的游戏,但所有的游戏
需要进球,对不对?
那么我们可以用它来保持跟踪 多少错误恐龙吃了吗?
一个变量。
因此,让我们添加一个变量叫做分数。
>> 现在我们必须决定什么 范围这种变量有。
所以,让我们想想。
虽然我们可能会想,但增加 如果它一直比分
成功吃掉,阶段可能 有事情做的
得分为好,这样让我们的分配 这个变量对所有的精灵。
>> 我们要增加得分, 仅当一个错误已经吃过了。
我们已经写了一个脚本, 吃过这么处理的错误
让我们添加这一条语句 在更改分数1。
这意味着,一旦你吃 一个错误的分数增加。
>> 让我们玩了一下,吃, 我不知道,三个错误。
所以,好了,你累了的游戏 你就按红色停止
签署停止游戏。
而当你想回来,你会 再次按下绿色标志。
但是比分还是三连 虽然我在玩一个新游戏。
我们不希望给用户一个头 开始,所以我们需要重置
每次得分,他们 启动一个新的游戏。
所以,让我们添加到舞台的一份声明中 入口点脚本来设置
变量的得分为零。
所以,现在,每当你开始一场比赛, 将比分从零开始。
>> 现在,让我们打开饥饿的恐龙2 我已经添加了一些事情。
我点击的bug精灵 复制精灵作出了
我以前的一个精灵相同。
毒问题本质上是相同的 Bug1但我选择了一个新的服装,因为
我认为它看起来,很好, 一种有毒的。
除了增加得分 毒虫吃,其实我
通过改变比分降低 负一得分。
>> 然后我又服装 我们的恐龙使用的油漆编辑器
生病看恐龙 并命名它迪诺生病。
但是,我们不使用这种服装在我们的 程序还,所以让我们添加一些
语句块,这将改变 恐龙服装的绿色生病
服装,每当它吃 中毒的缺陷。
>> 现在,因为我们复制的bug精灵, 中毒的缺陷已全部
脚本 原来的bug。
如果你想复制的脚本 其他精灵,你可以拖动
子画面的顶部脚本 你要复制到。
但我们不会在这里需要做的 中毒的缺陷,因为已经有一个
脚本来检查错误 已chomped。
我们可以利用这一点来 沟通的恐龙吃了
有毒的bug。
而且我们之间的沟通 广播精灵。
因此,让我们的播出新 事件称为迪诺生病。
>> 我们知道,我们有一个服装 恐龙来改去,但我们也
知道从早期,它是 最好加在暂停
之间古装变化。
所以,当我收到迪诺生病,我要去 向迪诺生病改变服装,等待
一秒钟,然后再切换 回到饿迪诺。
好的。
让我们玩我们的游戏,吃 一个错误,甲虫。
比分减一。
>> 现在,有时你可能会注意到, 变量可能不会出现在
在屏幕的左上角。
如果您导航到数据段下 脚本,你会看到这个对号
创建的变量,你旁边。
而这个隐藏或取消隐藏 从屏幕上的变量。
但你也可以使用如下语句 显示或
隐藏特定变量。
因此,让我们用此显示变量分数 确保我们每次启动
游戏中,显示变量。
太好了。
>> 因此,让我们运行游戏和吃 一种毒药错误。
现在,它是有点古怪,有一个游戏 有负分,对不对?
因此,让我们介绍另一个功能。
如果恐龙吃太多有毒 错误,那么它变得太生病,
游戏结束。
因此,要落实这一点,我们将播出 另一个事件,GAME OVER。
我们怎么知道何时执行 随着广播这个游戏的?
>> 好吧,我们可以做这几个方面。
我们可以有一个剧本的阶段, 不断检查是否将比分
为负数或不是,广播 游戏结束时,
比分变为负数。
或者,我们可以利用的事实 只有这样,比分所能
是负面的,是一种有毒的 错误吃。
因为当你吃 错误,比分增大。
有没有用在检查是否 应该是游戏结束与否,当你
吃食用的bug。
>> 所以,我们实际上可以添加到 脚本接收恐龙生病
赛事转播。
我们要指示 恐龙如下。
如果得分小于零,则 广播GAME OVER。
因此,我们将建立分数小于零 条件使用块
操作员部分,并拖动 在我们的分数该块。
看到这里你可以拖动 变量的得分,并把小于零。
我们打算广播 一个新的事件,游戏结束。
>> 但是,如果比分一直没有了下文 零,我们希望恐龙
继续游戏。
因此,而不是使用如果在这里,让我们 使用如果其他构造。
一个if else结构告诉我们恐龙 做一件事情,如果条件为真
另一件事,如果 条件为假。
我们的第一个,如果身体可以进入 如果别的,让我们拖动英寸
但是,如果分数不小于零的 然后让切换回“
饥饿的恐龙古装。
我们不希望这样做,先发制人。
太好了。
>> 但是,因为我们播出的游戏, 我们仍然需要做一个
事件接收器。
实际上,有一个停止的所有语句 在控制,让我们连接这
当我收到GAME OVER。
但是,我们也想停止的bug,所以 让我们拖动所有的脚本
错误小仙以及舞台。
让我们尝试了这一点。
>> 马上吃了有毒的错误, 程序停止的预期。
没有其他错误举动,既不 恐龙,如果你按
向下箭头键。
但是,让我们说,我们不想提醒 他们负的得分,所以用户
让隐藏变量得分 舞台上,每当游戏
以上事件被接收。
好的。
>> 因此,这是一个相当不错的游戏。
有了更多的时间,你可以添加更多的 精灵和更多的脚本。
也许可以移动的错误 以不同的速度。
您可以添加一个新的背景 阶段 -
游戏结束的背景 -
这样的,当该级接收 随着事件的游戏,它可以切换到
游戏结束的背景下,所有 精灵隐藏。
很多小的调整可以使 你的游戏多了几分抛光。
>> 而这仅仅是一个例子 项目,你可以从头做
使用的所有工具 我们前面讨论 -
精灵,服装,舞台,布景, 条件,循环变量
广播事件和线程。
迪诺饿不使用任何声音 的影响,但你可以很容易地添加您
自己通过导航到“声音”选项卡,并 探索声音报表。
从无到有是一个伟大的介绍 编程的概念,所以有创意
以及最重要的,有乐趣。
我的名字是Zamyla,这是CS50。