【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第三讲 ...
随机推荐
- Apache Flink - 作业和调度
Scheduling: Flink中的执行资源通过任务槽(Task Slots)定义.每个TaskManager都有一个或多个任务槽,每个槽都可以运行一个并行任务管道(pipeline).管道由多个连 ...
- [游戏开发]imgui介绍
创建窗口 ImGui::Begin("Hello, world!"); ImGui::End(); 其中, ImGui::Begin("Hello, world!&quo ...
- Go 语言入门(一)基础语法
写在前面 在学习 Go 语言之前,我自己是有一定的 Java 和 C++ 基础的,这篇文章主要是基于A tour of Go编写的,主要是希望记录一下自己的学习历程,加深自己的理解 Go 语言入门(一 ...
- WebSocketSharp 创建客户端和服务端
这里没有对onOpen.onClose.onError做案例,生产环境需要具备. 1.客户端 只推送不接收数据 创建WebSocketClient类 class WebSocketClient { W ...
- 解决跨操作系统平台JSON中文乱码问题
解决跨操作系统平台JSON中文乱码问题 LINUX统一使用utf-8编码,WINDOWS却不是. LINUX中间件,传输JSON给WINDOWS程序,会乱码. 解决办法: 对JSON字段是字符串类型的 ...
- WebService(axis2),整合springmvc
webservice:不同组织或者部门之间互通数据 https://www.cnblogs.com/buggou/p/8183738.html 1 package com.sh.test; 2 3 4 ...
- Mac下安装php-memcached扩展
[libmemcached安装] libmemcached可以通过直接下载后解压也可以采用wget下载 先下载libmemcached:方式一:libmemcached下载地址:https://lau ...
- PHP松散比较与严格比较的区别详解
在PHP中相等的比较有两种,松散比较和严格比较,当使用松散比较时,如果进行比较的两个操作数类型不同,那么会对操作数进行适当的类型转换,如果转换后的值相同则认为两个操作数相等.而使用严格比较时,如果两个 ...
- osgOcean编译
E:\Visual Studio 2015\install\VC>e: E:\Visual Studio 2015\install\VC>E:\Visual Studio 2015\ins ...
- pyecharts绘画优美图形
常用图形:柱形图-折线图-饼图-散点图 from pyecharts import Line, Bar, Pie, EffectScatter # 数据 attr =["衬衫", ...