【Scratch】编程?一节课就教会你!其实我们不用一个个学习如何使用代码。

第199篇文章
老丁的课程
在很多教程里面,大家都喜欢把模块拿出来一个个讲述其功能。
这样做的好处是,可以把每个代码模块的功能讲的很清楚。但最最讨厌的问题也随之而来……
举个例子,当你学习英语的时候,是语法好学,还是词汇好学?
肯定是语法啊……因为语法基本上就是语言规则,规则是有限的。并且,规则在很多情况下是可以根据自己的要求重新组合的。而词汇呢?没完没了……所以,英语水平的高低,从某种意义上来说,词汇量本身就是一个很好的参考标准。
如果学习英语的时候,光背词汇,第一,记不住,第二,用不来,那么面对浩瀚的辞海……怎么能学会呢?
所以,我们要从理解的角度来学习这些东西。
再所以,我们还是从一个编程流程的方法,作为实际操作的开始吧!
本课程将把很多应用和知识点融入课程内来讲述哦!
注定,这不是一套说明书式的教程。
别看Scratch有那么多模块的种类,其实归根结底,只有2种。
第一种都长这个样子,就像一个个卡片。它们负责一个程序中的具体流程执行或者执行判断、循环。

不管它们是什么颜色,其实我们可以理解为,它们都属于同类~都可以堆在一块。
先不管这些代码是干嘛的,反正你只要把这些家伙随意的堆在一起,就可以做出一个程序。

而程序就会根据由上到下的顺序,开始执行。
第二种,就是椭圆的和六边形的。

这些我们可以认为他们是一种“条件”代码。
专管数据条件、逻辑条件(布尔运算)、处理数据等等,反正千变万化,可以有很多很多种,十分考验运用能力。它们给流程模块和输出模块,带来了各种各样的“条件要求”。当然,这些条件都可以由你自己来设置。
与EV3不同,Scratch的编程工具,开发的更为“详细”。
比如,关于启动的流程模块,也就是“事件”下面所对应的各种代码块。

这些模块一般都是用来启动某一套程序的。你可以设定各种各样的启动条件。
其他的都很好理解,比如当小旗帜被点击,当空格(也就是电脑键盘上的空格)被点击,它们都是用来触发程序启动的“条件”。
诶,对了,这里我们看到了几个关键词。

角色、背景、广播,它们是什么?请看下面这个全景图。

跟Mindstorms相比,Scratch多了一个“角色”的感念。同时也多了一个“背景”的概念。
简单说,这两种东西,都是“对象”。
你编程对谁编?
当然是对“对象”来编程啦。
对象可以是“角色”,也可以是“背景”。区别是,角色可以移动来移动去,而背景就是整个背景图案啦。
点击上图右下角的两个按钮,大家可以自己添加角色和背景。这个很简单,没什么特别的地方,尝试一下马上就明白了。
当你需要对一个添加完的角色或者背景进行编程或者修改的时候,就要去选中对应的那个对象。

然后你就可以根据上图做这些事情。
了解了上面这些内容后,大家就明白了。
在Scratch里面,我们的编程可以明确的针对每一个被添加上的角色和背景来进行操作!
简单说,就是,让谁干嘛就干嘛。在一个程序里,每个对象的分工都可能是不同的,而我们,只要明确的告诉每个对象,做些什么,就ok啦!
而你可以看到,上文说到的这两类代码都是配合着使用的。
比如,首先,我们在程序的一开始,需要放一个启动模块。(什么操作触发程序启动)

我们当然,可以很简单的放上另一个卡片,来控制这只Scratch猫。这只需要放上一个代码即可。可以手动输入半圆内的数字,来控制一下这只猫。
但这毕竟是手动输入呀,程序不是应该可以根据一些情况自己计算距离的么?

那么我们稍微提一个复杂一点的要求好了,这样比较容易帮助小朋友理解问题。
要求:当绿色旗帜被按下后,让小猫,以再次按下鼠标之间的时间为条件,移动到坐标(100,0)的位置。
问题其实也挺简单的。我们可以看得出来,最终呈现的效果一定是间隔时间越短,猫移动的越快,而间隔时间越长,猫移动的越慢。对么?
这个时候,我们就需要使用到这些“数据条件”代码的配合啦。
首先,在程序一开始,把我们需要用到的计时器和猫的位置归零。

这是一个习惯问题,在我们使用任何数据模块的时候,程序一开始,尽量要养成归零或者完成初始值设置的习惯。这样方便我们日后检查一些程序的问题,同时也容易帮助我们找到问题,这个在以后的课程中,我们会经常提到。
第二步,把题目中要求的两个动作给放上去。
1、等待鼠标点击
2、把猫移动位置给设定好

我们可以看到上图的两个位置,是可以放上两种形状的代码的!

这种形状,我们叫做“布尔运算”代码。不作过多的解释了,大家简单理解为,这就是一种逻辑判断就可以了。
逻辑嘛,就是“是”或者“不是”;“包含”或者“不包含”;“成立”或者“不成立”……
反正就是二选其一,单选的条件。它本身也是一种数值,不符合逻辑的时候,它的数值就是0;而符合逻辑的时候,它的数值就是1。
所以它也可以直接当做是数据来使用,只是它的数据变化,只有0和1两种。

而上图这些,就是“数据运算”代码。它们的可能性就多咯。你可以运算,加减乘除,甚至更高级的数学运算。它们最终代表了各种数值。
我们分别把题目要求的两种数据,拖动到相应的“代码运算”位置上,这个程序就完成啦!

是不是很简单,动手试试看吧!
当然,理解了这些内容后,自己可以作一些各种各样的小尝试。
学起来不难,理解也不难,但熟悉,还是需要一些时间滴!
【Scratch】编程?一节课就教会你!其实我们不用一个个学习如何使用代码。的更多相关文章
- centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobackupex/Xtrabackup 第四十节课
centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobacku ...
- centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/index.php <<EOF重定向 shell的变量和函数命名不能有横杠 平台可以用arch命令,获取是i686还是x86_64 curl 下载 第三十九节课
centos shell编程5 LANMP一键安装脚本 lamp sed lnmp 变量和字符串比较不能用-eq cat > /usr/local/apache2/htdocs/ind ...
- centos shell编程3【告警系统】 没有服务器端和客户端的概念 main.sh mon.conf load.sh 502.sh mail.php mail.sh disk.sh 第三十七节课
centos shell编程3[告警系统] 没有服务器端和客户端的概念 main.sh mon.conf load.sh 502.sh mail.php mail.sh disk.sh 第三十七 ...
- centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 第三十六节课
centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 ...
- centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课
centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件.目录属性 shell数组简单用法 $( ) 和$ ...
- 跟我一起学编程—《Scratch编程》第24课:幸运大转盘
同学你好,欢迎来到<跟我一起学编程>,我是包老师.这是<Scratch3.0编程>课程的第24课,我这节课教你做一个抽奖游戏:幸运大转盘. 学习目标: 1. 能够熟练使用造型工 ...
- 跟我一起学编程—《Scratch编程》第22课:颠弹力球
1. 能够熟练绘制角色和背景造型 2. 能够熟练控制角色角度.速度等 3. 能够熟练使用变量 4. 能够熟练使用循环.选择等指令控制程序 任务描述: 1. 绘制弹力小球.托板角色,背景造型. 2. 游 ...
- 跟我一起学编程—《Scratch编程》第21课:打地鼠
能够熟练创建并使用变量 能够熟练使用“广播”和侦测指令 能够熟练绘制角色和背景造型 能够熟练使用循环.选择等程序指令 任务描述: 绘制有6个地洞的背景:绘制锤子的两个造型:绘制地鼠的造型. 游戏开始后 ...
- 少儿编程|Scratch编程教程系列合集,总有一款适合你
如果觉得资源不错,友情转发,贵在分享!!! 少儿编程Scratch: 少儿编程Scratch第一讲:Scratch完美的初体验少儿编程Scratch第二讲:奇妙的接球小游戏少儿编程Scratch第三讲 ...
随机推荐
- 缓冲区 cin() getline() getchar()
; } 只输入了一行abc, 然后回车后就输出一行abc, 一行空 这是因为cin在缓冲区里丢下的\n 给后面的getline()当成输入结束的标志了 二.getline(cin, str) 输入结束 ...
- Hibernate 生成策略和缓存策略
主键生成策略 一.主键分类 1. 自然主键 主键本身就是表中的一个字段,实体中一个具体的属性,对象本身唯一的特性 比如:创建一个学生表:姓名.年龄.身份证号(自然主键) 2. 代理主键 主键本身不是表 ...
- c++比例-libcurl多线程并发时的core【转载】
转自: https://www.cnblogs.com/edgeyang/articles/3722035.html 浅析libcurl多线程安全问题 背景:使用多线程libcurl发送请求,在未设置 ...
- (三)OpenCV-Python学习—图像平滑
由于种种原因,图像中难免会存在噪声,需要对其去除.噪声可以理解为灰度值的随机变化,即拍照过程中引入的一些不想要的像素点.噪声可分为椒盐噪声,高斯噪声,加性噪声和乘性噪声等,参见:https://zhu ...
- LINUX增加SWAP分区---install_oracle
我们都知道在安装Linux系统时在分区时可以分配swap分区,而系统安装后(在运行中)如何建立或调整swap分区呢?在装完Linux系统之后,建立Swap分区有两种方法.1.新建磁盘分区作为swap分 ...
- 【Oracle】往Oracle11g的某表插入近千万条记录,耗时略超一小时
和MySql的对比下,两者有数量级的差距. 表ddl: CREATE TABLE tb04 ( "ID" ,) not null primary key, "NAME&q ...
- [转][C#]Oracle 连接错误的解决
错误1: .NET连接oracle,提示错误OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用 两个原因: 1. 权限,把 Oracle 所在目录权限设置成 authenticat ...
- AppCompatTextView可改变文本字体大小
有这样一个需求,要求在一个列表中的每个条目中展示字数不限个数的文本.而且每个条目的宽度都是固定的,展示的文本如果过长,不可以用省略号显示,只能动态的调整(缩小)文本的字号来达到文本能完全显示的效果,而 ...
- Linux 验证当前 Video0 不否是v4l设备 linux v4l 编程(1) Video 4 Linux 简介
#include <stdio.h> #include <string.h> #include <errno.h> #include <sys/types.h ...
- c# 扫描局域网IP列表的几种方法
很多软件都有获知局域网在线计算机IP的功能,但是在.net怎么实现呢,有好多方法, 下面我给大家介绍几种,供大家参考. 1.微软社区上介绍了使用Active Directory 来遍历局域网 利用Di ...