许多人都知道,Scratch中有两类变量,即全局变量和私有变量。不过,克隆体变量因其隐秘,而不为许多人所知,本系列博客将介绍Scratch中的变量类型及其实际应用。

首先我们来看全局变量,在任意角色中(包括舞台),新建一个变量,选择“适用于所有角色”即可创建全局变量:

任何角色都可以调用全局变量,使用简单,就不再赘述。

接着我们再来看私有变量,在特定角色中,新建一个变量,选择“仅适用于当前角色”即可创建私有变量:

创建完私有变量之后,可以在屏幕上看到:

这时,变量名前面还有角色名,私有变量只能被当前角色,即角色1调用。值得注意的是,不同角色的私有变量可以重名,但全局变量不可重名:

那么如何调用其他角色的私有变量呢?我们可以在侦测模块里找到:

再通过下拉菜单把它改成:

这时,我们就可以在角色1中调用Abby的私有变量了。私有变量是角色独有的,在某个角色中操作私有变量,不会影响到其他角色的私有变量。

那么,克隆体有没有自己的变量呢?答案是肯定的,接下来我们来看看如何创建克隆体变量吧!

首先,第一步和私有变量是完全一样的,但是最好在变量名上和私有变量有所区别,避免混淆:

接着我们产生一些克隆体,并且在每次克隆体启动时都将克隆体变量增加1:

然而结果却不能如愿,所有克隆体显示的都是1:

这是因为每个克隆体都是独立的,而且克隆体变量都是继承自本体,所有结果都是1。现在我们加入私有变量,并且让其在每次克隆之前自加,确保每个克隆体被克隆出来的瞬间,私有变量都不一样。然后在克隆体启动的瞬间,将私有变量赋值给不同的克隆体变量:

没错!这才是我们要的克隆体变量:

可以发现,即便克隆体的代码完全一样,但是因为每个克隆体的变量被赋予不同的值,最后的结果是不一样的,这就是克隆体变量。

Scratch中的变量相关推荐

  1. Scratch中的全局变量,私有变量与克隆体变量(一)

    许多人都知道,Scratch中有两类变量,即全局变量和私有变量.不过,克隆体变量因其隐秘,而不为许多人所知,本系列博客将介绍Scratch中的变量类型及其实际应用. 首先我们来看全局变量,在任意角色中 ...

  2. 怎么样去掉scratch中的字符串的第一个字符?/scratch巧妙去掉字符串数最开头0/字符串算法操作/字符串的逆序/变量逆序

    起因是一个朋友在群里问了一个问题:scratch中如何巧妙的去掉一串字符数最开头的0? 我想了一下好像没有什么好办法,当然如果这个字符串是纯数字,可以用下面这种方式去除第一个字符0. 首先我们省去判断 ...

  3. colab中的变量怎么读取_Fizyr Retinanet在Colab中进行目标检测

    colab中的变量怎么读取 by RomRoc 由RomRoc 带有Fizyr Retinanet的Google Colab中的对象检测 (Object Detection in Google Col ...

  4. 【雕虫小技第4篇】Scratch中更多模块功能怎么使用?

    本节我们来介绍结构化的程序设计中最关键的一个节点:过程.一个复杂的程序往往需要很长很长很复杂的代码,而把这些代码全部编写在一段脚本中,不但不好理解也不好测试和调试,如果把程序按照实现不同的功能划分成不 ...

  5. html img调用js,html调用js变量 如何在html中输出js文件中的变量

    html页面代码中怎么调用js变量?html页面代码中怎么调用js变量,例如 在html代码中插入js代码: a=取浏览你把index1.js 中的onReady 去掉,把index1.js改成 fu ...

  6. Go: 分布式学习利器(2)-- Go中的变量,常量 以及与其他语言变量之间的差异

    文章目录 1. Go 语言编写测试代码 2. Go 的变量 3. Go 常量定义 1. Go 语言编写测试代码 源码文件以 _test结尾: xxx_test.go 测试方法名需以Test开头: fu ...

  7. php 类中的变量的定义

    php 如果在类中定义变量,在类的方法中调用时应该加上$this-> . class ClassName {private $a = 333;function __construct(){$th ...

  8. spark 获取广播变量_Spark流式程序中广播变量和累加器为何使用单例模式

    Spark中广播变量详解以及如何动态更新广播变量​mp.weixin.qq.com 1.广播变量是只读的,使用单例模式可以减少Spark流式程序中每次job生成执行,频繁创建广播变量带来的开销 2. ...

  9. python跨行字符串 变量_在Python中有没有在多行字符串中使用变量的方法?

    所以我把这个作为邮件发送脚本的一部分:try: content = ("""From: Fromname To: Toname MIME-Version: 1.0 Con ...

最新文章

  1. android app 历史版本,怎么找到App的所有历史版本,以及每次改版的变更点呢?
  2. 阿里2020 净利润约: 2000亿元 腾讯2020 净利润约: 1000亿元 百度2020 净利润约: 300亿元 美团2020 净利润约: 150亿元 --互联网一响,黄金万两
  3. hadoop 2.7.3
  4. 分布式事务中间件 Fescar - 全局写排它锁解读 1
  5. numpy的where方法
  6. java nio 缓冲区(一)
  7. 基于web的通用文本标注工具MarkTool in NLP
  8. 【ArcGIS|空间分析|网络分析】1 创建网络数据集
  9. NTP服务器的相关配置
  10. android光谱图软件,光谱精灵精华版Plus
  11. 数值分析正割法python3实现并绘图
  12. Redis学习笔记(实战篇)(自用)
  13. 数据库相关岗位面试准备建议
  14. 派森python_派森(Python)
  15. Win7系统便签怎样设置一个闹钟提醒
  16. 两种方法设置 .NET/C# 项目的编译顺序,而不影响项目之间的引用
  17. solidity部署和验证代理合约
  18. 初学者怎么学习Java
  19. excel取消保护(忘记密码)
  20. lg linux电视安装软件,LG电视安装第三方APP教程 仅针对安卓电视!!!

热门文章

  1. 软考高级-信息系统管理师之综合测试与管理(最新版)
  2. COM:根系微生物组研究中的合成群落还原法
  3. 量化投资可转债策略--源代码
  4. 互动媒体技术作业——processing码绘
  5. ios 开发证书导出p12文件_如何生成苹果开发者证书及描述文件
  6. Elasticsearch:Elasticsearch 查询示例 - 动手练习(一)
  7. no theme named ‘sphinx_rtd_theme‘ found (missing theme.conf?)
  8. wxpython后台线程更新界面控件方法
  9. 打开idea后不显示界面
  10. windows日志查看与清理