Navigation

    CreatiCode Scratch

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    1. Home
    2. creaticodeteacher2-mail
    C
    • Profile
    • Following 0
    • Followers 0
    • Topics 102
    • Posts 102
    • Best 0
    • Groups 1

    creaticodeteacher2-mail

    @creaticodeteacher2-mail

    Global Moderator

    0
    Reputation
    2
    Profile views
    102
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    creaticodeteacher2-mail Unfollow Follow
    Global Moderator

    Latest posts made by creaticodeteacher2-mail

    • 三维 - 把制作的飞碟存为模型(难度:2级)

       

      用到的相关知识

      • 父子对象关系
      • 物体命名
      • 三维物体的速度
      • 将物体导出为GLB文件
      • 社区模型

       
       

      介绍

      在之前的教程中,大家学会了如何制作外星飞碟。在本教程中,大家将学习如何控制飞碟飞行,以及如何让别人也能使用你做的飞碟模型。

       
       

      第1步 - 将之前的飞碟项目保存副本

      首先,进入创益编程网站“我的东西”页面,找到你之前做的飞碟项目。如果还没做,请先学习这篇教程。

      把飞碟项目保存副本,并重新命名,比如“飞行的飞碟”。推荐大家要保存项目副本,这样的话,如果你不小心误删了某个积木或者角色,就可以从原项目恢复过来。

       
       

      第2步 - 为飞碟的每个组件命名

      目前,我们的飞碟有3个组件。为了让这3个组件成为一体,我们需要用“父子对象关系”把它们绑定到一起。

      方法为,首先需要为每个组件命名,例如,主体命名为“主体”,另外2个组件分别命名为“组件1”和“组件2”:

       
       

      第3步 - 建立父子关系

      现在我们把“主体”设置为2个子组件的父节点。


       
      注意:这一步完成后,运行项目时仍然看不到什么区别,但现在飞碟可作为一个对象了,而不是3个。

       
       

      第4步 - 让飞碟飞行、旋转

      做个小实验,我们让飞碟飞行、旋转。为了控制整个飞盘,我们要选择父对象“主体”作为角色对象。当我们设置了“主体”的旋转速度和上升速度,子对象就会跟随做同样动作。

       
       

      第5步 - 将飞碟保存为模型文件

      假如你非常喜欢自己做的飞碟模型,想在其他项目使用这个飞碟,也想让别人使用。那么,就需要把飞碟对象保存为GLB文件。

      只需运行这一个积木(可放在代码编辑器的任意地方):

       

       

      第6步 - 减小模型文件

      GLB模型文件有时非常大。加载大型文件需要花较长时间,所以大家一般更喜欢较小的模型文件。

      为了让文件变小,我们可以将球体的“侧面数”由64减至32或16。外观质量没有太大变化,而文件就小多了。

       
       

      第7步 - 上传并分享社区模型

      现在我们有了GLB文件,就可以上传为新的“社区模型”,以便于你自己和创益编程上的其他用户免费使用该模型。

      做法为,进入“我的东西”页面,点击“3D模型”类别。点击“共享一个新模型”,然后选择你要上传的GLB文件。


       
      注意,根据文件大小不同,上传一个模型文件有时需要好几分钟。

       
       

      第8步 - 在新项目中使用社区模型

      为了试验新模型,你可以新建一个带空场景的项目,然后用积木“添加社区模型”来加载模型:


       
      这时你就可以像使用模型库中的其他模型一样来使用这个飞碟对象。

       
       

      创意扩展

      你可以用这个方法制作并分享很多种模型,例如一个房子、一张笑脸。

      此外,你可以尝试通过修改飞碟的几何形状和材质来让模型文件更小。例如,试试将侧面数由64减至32或16,看看文件是否变小。

      posted in 小教程
      C
      creaticodeteacher2-mail
    • 三维 - 随机彩盒三维艺术(难度:2级)

       

      用到的相关知识

      • 使用盒子
      • 取随机数
      • 三维坐标和位置
      • 颜色的使用

       
       

      介绍

      在本教程中,大家将用很多盒子建造一个三维世界,并将学习如何利用随机数建造三维艺术。

       
       

      第1步 - 新建一个项目

      首先,在创益编程游乐场新建一个项目,删除角色1,在角色“空的1”中添加如下积木:


       
      一个空的三维场景就创建好了。

       
       

      第2步 - 添加10个盒子

      接下来,我们用“重复执行”循环来添加10个盒子。你可以为盒子设置任意颜色。


       
      注意,因为这些盒子都重叠在一起,所以看上去就只有一个盒子:

       
       

      第3步 - 将盒子移动到随机位置

      为了让盒子分开,我们可以利用积木“取随机数”,把它们移动到随机的X/Y/Z坐标。


       
      每个盒子的x坐标取-300至300之间的一个随机数,y坐标和z坐标同样:

       
       

      第4步 - 盒子形状随机

      接下来,我们把每个盒子改成随机形状。因为盒子的形状由长、宽、高决定,就可以把这3个数设置为随机数。


       
      注意:盒子的三个维度都不能为负数,所以都取10至100之间的随机数。

       
       

      第5步 - 盒子颜色随机

      现在我们也让盒子颜色随机。为了做到这一点,我们不能用拾色器下拉菜单来设置颜色。而是要用颜色计算器积木。在这个项目中,我们让颜色、饱和度随机,亮度为100。


       
      因此,每次我们都能得到不同颜色的盒子。因为我们使“颜色”的值取1至30之间的随机数,生成的颜色就为红、绿之间的随机颜色。

       
       

      第6步 - 添加更多盒子

      现在我们尝试使用更多盒子,并扩大颜色和位置的范围:


       
      你会发现结果更有趣了,但运行时间也更长了:

       
       

      第7步 - 提速

      为了让程序提速,常用的方法就是不让屏幕刷新:不要每添加一个盒子就刷新一次屏幕,而是等到全部盒子添加完毕后,仅刷新一次屏幕。

      为了做到这一点,我们新建一个积木“添加盒子”,并勾选“运行时不刷新屏幕”:


       
      然后,把重复执行循环移到积木“添加盒子”的定义中:


       
      现在我们的程序至少要快10倍了!

       
       

      第8步 - 设置天空背景

      最后,为了让场景更好看,我们可以添加一个星空背景。注意,把天空设置为星空后,我们还需要把摄像头移近些:

       
      最终演示效果如下:

       
       

      创意扩展

      尝试使用你学到的新方法来制作不同的作品。下面是一些创意想法:

      • 不同的形状:不要只用方形盒子,何不试试其他形状?
      • 不同角度:还可以随机旋转物体,对吧?
      • 物体都放到地面上:把所有物体都放到地面上,就像在草地上一样。
      posted in 小教程
      C
      creaticodeteacher2-mail
    • 三维 - 无人机飞行(难度:1)

       

      覆盖的关键课题

      • 创建三维场景
      • 设置物体速度
      • 使用模型
      • 追踪摄像头

       
       

      介绍

      在这个教程中,我们会操控无人机跨越一个场景:

       

       

       

      步骤 1 - 创建一个三维场景

      创建一个新项目,并移除小狗角色。在“空白1”角色中,添加绿旗积木以及"创建三维场景"编程积木。请选择一些自带物体的场景,比如“城堡”、“城市”、“花园”和“村庄”。需要注意的是,如果你的电脑运行得比较慢,“城市”和“村庄”场景需要用更长时间来加载。

       

       

       

      步骤 2 - 添加一个无人机模型

      你可以通过积木"添加模型"来添加一个无人机模型。点击输入框“请选择”,将会弹出模型库,你可以选择自己喜欢的模型。需要注意的是,你需要为无人机设置一个合理的高度,以便它看起来不会太大,也不会太小。

       

       

      需要注意的是,如果你把这个积木独立开来,只点击这个积木,运行速度会比较快。如果你把这个积木放到“创建三维场景”积木下面并一起运行,那就会需要更长时间。

       

      步骤 3 - 添加一个追踪摄像头

      因为无人机会到处飞行,我们不能使用静止的摄像头。相反,我们需要使用一个"追踪摄像头",无论目标物体去哪里,这种摄像头就会跟随到哪里。

       

       

      需要注意的是,你需要把”主方向“设置为”目标“,从而使摄像头永远和无人机面向同一个方向。

       

      步骤 4 - 新建一个积木”操控按钮“

      为了把所有操控逻辑都放在同一个地方,让我们首先新建一个积木,名为”操控按钮“。你还可以为这个积木选择一个新的颜色。

       

       

       

      步骤 5 - 当”e“键被按下的时候上升

      我们让无人机在按下”e“键时升起,在没有按键被按下时停下。我们需要一个”重复执行“循环来持续检查”e“键是否被按下。要让无人机上升和停止,我们可以把对应的"上升速度"分别设置成400和0。

       

       

      按下”e“键时如下所示:

       

       

       

      步骤 6 - 当”q“键被按下时下降

      每当”q“键被按下的时候,我们应该把”上升速度“设置成一个负数,以便无人机会下降。你自己可以添加这个逻辑代码吗?

       

       

      修改程序如下:

       

       

      使用“上升速度”的一个好处就是无人机将不会降落到地面以下(Z坐标为0)。请尝试做做看。

       

      步骤 7 - 当”a“键被按下时左转

      每当“a”键被按下时,我们应该通过设置“Z轴旋转”速度来使无人机左转。同样地,当没有按键被按下时,我们应该把Z轴旋转速度重置为0:

       

       

      需要注意的是,这是一个新的“如果-否则”分支,而它应该被放置在前一个的“如果-否则”分支的下方,这是因为处理旋转速度和上升速度的逻辑并没有依赖关系,是相互独立的。举个例子,无人机可以同时上升和旋转。

       

       

       

      步骤 8 - 当”d“键被按下时右转

      接下来,你可以自己尝试让无人机在按下“d”键时右转吗?

       

       

      这是其中一个办法,我们只需要把“Z轴旋转”从-100设置成100。

       

       

       

      步骤 9 - “w” 和 "s"键用以向前移动和向后移动

      最后,我们需要再添加两个按键:“w”键让无人机向前飞,而“s”键让无人机向后飞。你可以把对应的“前进速度”分别设置成一个正数和一个负数。

       

       

      添加新积木的方法如下:

      最终程序如下所示,以供参考。

       

      创意扩展

      你可以有很多办法来扩展这个程序。下面是一些创意想法:

      1. 更换无人机: 你可以选择一些其他模型用以飞行,并可以更改其颜色 和材质。

      2. 寻宝游戏: 你可以尝试在场景内放置一些奖品,并让玩家寻找奖品。

      posted in 小教程
      C
      creaticodeteacher2-mail
    • 三维 - 迷宫游戏(难度:3级)

      用到的相关知识

      • 创建三维场景
      • 绘制造型
      • 将二维造型挤出为三维物体
      • 调整物体大小
      • 更新物体纹理
      • 三维物体的速度
      • 三维方向和旋转
      • 在场景中添加化身
      • 追踪摄像头
      • 化身动画
      • 用射线投射检查物体碰撞

       
       

      介绍

      在本教程中,我们将制作一个简单的三维迷宫游戏,一个人物角色在你设计的迷宫中跑动。效果如下:

       

      第1步 - 创建一个“草地“场景

      首先新建一个项目,并删除小狗角色。在“空的1”角色中,添加绿旗积木和积木“创建三维场景”。注意,你需要点击输入框并选择“草地“场景。这是个轻量级的场景,有一大块草坪和蓝天。

       

      第2步 - 在造型编辑器中添加几个矩形方框

      现在我们来设计迷宫。添加一个空的角色,命名为“迷宫”。进入造型编辑器选项卡,绘制矩形方框。更改为无填充色,在轮廓中拾取一种颜色,然后绘制多个方框。这些方框将转化为三维迷宫的城墙。

       

      第3步 - 在城墙上打开几个缺口

      现在我们需要在城墙上打开几个缺口。我们可以用橡皮擦工具擦除部分城墙并形成缺口;

       

      第4步 - 将二维造型挤出为三维

      现在我们把这个二维迷宫挤出为三维迷宫,要使用“挤出”工具。

      在第一个角色中,发送一条消息——“添加迷宫”:

      在“迷宫”角色中,当收到“添加迷宫”消息,就运行积木“挤出”:

      现在就可以在三维场景中看到迷宫了:

       

      第5步 - 旋转迷宫并缩放迷宫

      三维迷宫有些问题,是竖着的,而且太小了。因为x轴朝向右,为了把迷宫变成水平的,我们将其绕x轴旋转270度(或-90度)。

      我们还可以把迷宫三个维度都放大20倍。迷宫角色更新后的代码如下。

      现在我们就得到一个漂亮的三维迷宫:

       

      第6步 - 更换城墙材质

      为了让城墙更逼真,我们可以更换城墙材质,通过在迷宫角色中添加如下积木来实现。大家可以随意尝试不同的材质。

      就会得到更好看的城墙,如下所示:

       

      第7步 - 添加人物角色

      接下来,我们回到第一个角色,用如下积木添加人物角色:

      默认情况下,这个人物站在中央:

       

      第8步 - 添加一个“追踪”摄像头

      为了让游戏玩家总是能看到人物前面的东西,我们在人物后面添加一个“追踪”摄像头,“主方向”设置为“目标”。这意味着摄像头方向永远与人物的方向一致。

      当人物跑动时,摄像头会跟随人物,我们就不能再用鼠标指针来旋转摄像头。

       

      第9步 - 按“W”键前进

      为了让人物跑动,我们要制作一个新的积木,命名为“操作键”,用以操作按键事件。在这个新积木的定义中,首先编辑“W”键,“W”键让人物向前跑。注意,在“重复执行”循环中我们要设置简短的等待时间,否则人物就跑得太快了。

      现在,如果我们按“W”键,人物就向前奔跑,摄像头会一直跟随人物:

       

      第10步 - 左转、右转

      接下来,我们再添加2个按键:按“A”键左转,按“D”键右转。注意,这个新的逻辑与“W”键无关,所以我们可以同时进行跑动和转向。

      现在,人物可以在三维迷宫内穿行了:

       

      第11步 - 添加跑步动画

      为了让人物跑动,我们需要做两处改动。

      首先,需要为人物加入“跑”动画。就如同教人物如何跑步:

      然后,我们要根据是否按下“W”键来启动动画“跑”还是“待命”。注意,我们不需要添加“待命”动画,因为,当人物载入场景时默认添加“待命”动画。

      这一步完成后,人物就出现奔跑动画:

       

      第12步 - 撞到城墙即停止

      最后一步,我们要让人物碰到城墙后停止前进,从而让人物寻找迷宫出路。

      首先,我们要在人物角色和迷宫角色之间打开碰撞。“Z位移”要设置为人物高度的一半,在这个项目中为50。若需深入了解这个积木,请查看这篇教学内容。

      接下来,我们需要更改人物移动的方式。不用积木“移动”,而是要用积木“设置速度”让人物奔跑和停止。

      得到的最终结果如下:

       

      创意扩展

      从这个基本的迷宫游戏,你可以扩展成多种形式。下面是一些创意想法:

      1. 不同场景:这个迷宫游戏还可以做成乌龟在水下迷宫游泳、飞机在空中迷宫飞行。

      2. 路径标记:如果迷宫太过复杂,游戏玩家可能需要一些方法来标记他走过哪些路。

      3. 奖品:我们可以在迷宫中放置一些宝石,让游戏玩家捡宝石,宝石能让游戏玩家跑得更快甚至可以跳过城墙。

      4. 分多种级别:你可以检查人物的位置,看是否走出迷宫。如果成功走出迷宫,你可以展示“已完成级别“信息,然后游戏玩家点击一个按钮进入下一级别。

      posted in 小教程
      C
      creaticodeteacher2-mail
    • 三维 - 艺术字(难度:2级)

       

      用到的相关知识

      • 三维文字
      • 图像处理特效
      • 设置摄像头参数

       
       

      介绍

      在本教程,大家将利用三维文字和图像处理特效制作精美的三维艺术字。

      b10.gif

       
       

      第1步 - 新建一个项目

      在创益编程游乐场中新建一个项目。删除角色“角色1”,然后在角色“空的1”添加如下积木,即可初始化一个空场景。

      1.png

       
       

      第2步 - 设置背景

      现在我们用自己喜欢的颜色制作一个漂亮的背景。同时,要用图像处理特效添加深色的边角。需要添加如下2个积木:

      2.png

       
      注意:对于图像处理特效,我们使用“抗锯齿”和“锐化”效果,可使三维文字更加光滑。另外,“泛光强度”设置为55,以便于使文字闪烁光芒。

      这一步完成后会得到类似如下结果:

      1851d734-c460-45b6-ae9e-e1de40892373-image.png

       
       

      第3步 - 添加三维文字

      我们使用“三维加厚文字”,这种文字具有厚度,并支持很多种有趣的字体。

      你可以选择任意文字、任意字体类型。这个例子中使用字体“Happy Holidays”。注意,我们把文字命名为“c”,以便于稍后删除。

      3.png

       
      文字如下所示:

      b5.gif

       
       

      第4步 - 给文字添加自发光颜色

      为了让文字发光,我们需要给文字添加自发光颜色,比如白色。可以用如下积木“更新颜色”:

      4.png

       
      现在整条文本更亮了,尤其是当我们从上下观看时更亮。这是因为场景“空无”有2个发光源,上下各一个。

      b6.gif

       
       

      第5步 - 添加水平光

      为了让文字在前方看时更亮,我们需要再添加水平光:

      5.png

       
      由于我们添加了“辉光效果”,现在我们从前方看,文字就会闪光。

      b7.gif

       
       

      第6步 - 旋转摄像头

      为了从不同角度观察文字上的闪光,我们可以为摄像机添加动画,通过设置摄像头属性来完成。下图中3个积木使摄像头从水平角度210度开始旋转,向右旋转到角度150度,用时4秒,然后使摄像头回到180度的中心位置:

      6.png
       
      结果我们就得到如下旋转、闪光的文字:

      b8.gif

       
       

      第7步 - 摄像头拉近

      最后,使摄像头向文字拉近,文字就变得越来越大。很容易做到这一点,就是把摄像头距离在几秒内缩小到0:

      7.png

       
      就得到如下效果:

      b9.gif

       
       

      第8步 - 删除文字

      在上一步,尽管摄像头的距离为0,我们仍然能看到一部分文字。我们可以在最后删除文字,就解决了这个问题:

      8.png

       
      最终结果如下:

      b10.gif

       
       

      创意扩展

      请大家亲自动手制作其他样式的艺术字。下面是一些创意想法:

      • 调整颜色/材质/字体:通过使用不同的颜色、材质和字体,让文字外观有所不同。

      • 不同的动画:你可以更改摄像头绕文字旋转的方式,或者使文字移动或旋转。

      • 把单词分解为字母:不把整个单词当做一个三维文字对象,而是把每个字母都作为一个单独的文字对象,并为它们添加不同的动画。

      posted in 小教程
      C
      creaticodeteacher2-mail
    • 二维 - 可持续发展目标1 - 非洲贫困率(难度:3)

       

      主要的相关课题

      • 绘制造型
      • 克隆角色
      • 图形特效积木
      • 变量简介
      • 读取表格
      • 在舞台上打印文字
      • 积木——“当碰到( )时”

       
       

      介绍

      可持续发展目标 是联合国于2015年正式通过的17个目标。这17个目标是每个人都要完成的学习清单。

      本教程是关于非洲国家的贫困率,与第一个目标“消除贫困”相关。

      在本项目中,用户可以在地图上选择一个国家,然后显示这个国家贫困线以下的人口比例。这些人口日收入不足1.9美元,很难满足食品和医疗等基本需求。大部分贫困国家在非洲,这张地图清楚地告诉我们哪些国家最需要帮助。

       

      第1步——改编模板项目

      首先,点击下方链接,即可打开项目模板:

      https://play.creaticode.com/projects/a0234de11c61a2c2293f743c

      点击按钮“改编”,即可生成自己的改编项目。注意,你需要登录之后才能操作这一步。

      1.png

      该项目包含一个角色“非洲各国”,里有55个造型。每个造型就是一个国家的地图,造型就以国家名称命名。还有一个表格“非洲国家”,包含了这55个国家的贫困率。

       

      第2步——画一个深色的背景

      首先画一个渐变色背景。点击“舞台”图标,然后画一个矩形,要覆盖整个舞台。然后选择渐变填充模式,选2种自己喜欢的颜色:

       

      第3步——为背景添加标题

      在背景上添加标题,就写一个“非洲贫困率”。你可以用文本工具“T”在背景上添加文字。还可以更改文字的颜色、位置和大小。

       

      第4步——创建55个克隆体

      现在我们准备好添加地图了。因为有55个国家,我们要为角色“非洲各国”创建55个克隆体,让每个克隆体显示不同的造型。

      为了创建这些克隆体,你可以用一个计数循环“让变量(i)从( )走到( ) 步长( )”,和一个新变量“i”,这个变量就会从1走到55。在计数循环中创建克隆体,用变量“i”作为克隆体的编号ID。

       

      第5步——每个克隆体显示不同的造型

      接下来,我们要处理每一个克隆体。首先要使用积木“当作为克隆体启动时”,并在下面添加2个积木。

      • 我们将根据“克隆体ID”切换至不同的造型。每个克隆体都有自己的“克隆体ID”,各不相同。“克隆体ID”是一个介于1至55之间的一个数,那么这些克隆体将显示从造型1至造型55。
      • 原始角色“非洲各国”设置为隐藏。那么,当某个克隆体切换至对应造型之后,我们需要显示该克隆体。

       

      第6步——移动每个克隆体

      我们看不到整个地图,而地图随着造型变换,造型的位置决定了地图的位置。这容易解决,就是把每个克隆体向左上方移动。

       

      第7步——不让屏幕刷新

      目前,创建全部55个克隆体需要一定时间,因为添加每个克隆体之后,屏幕会刷新以显示地图的变化。为了让程序运行更快,我们创建一个不刷新屏幕的新积木,并把代码积木放到这个新积木的定义中。这样的话,只有当添加完全部55个克隆体后,屏幕才会刷新。

       

      第8步——将克隆体设置为随机颜色和随即亮度。

      接下来,我们要让地图好看一些,方法就是把每个克隆体设置为不同的颜色和亮度。注意,要让地图亮一些,但不能太亮,我们就选40至70之间的一个随机数。

       

      第9步——从列表读取贫困率

      为了显示贫困率,首先需要在每个克隆体中读取表格。请新建一个变量“贫困率”并选择“仅适用于当前角色”。这样的话,每个克隆体都有一个变量“贫困率”。

      现在就可以利用列名“数据”和行号“克隆体ID”从表格中读取贫困率。之所以能做到这一点,是因为造型和表格中的行都是按顺序排序的,并且一一对应,所以造型1的国家与表格的第一行的国家是同一个。

       

      第10步——显示国家名称和贫困率

      每当用户点击任意一个国家,我们就要显示这个国家的名称和贫困率。我们可以用积木“当角色被点击”,在所有克隆体上都起作用。然后让角色说出国家的名称和贫困率。注意,国家名就是造型的名称。

      现在这个项目就可以运行了:

       

      第11步——鼠标指到的国家高亮显示

      为了让地图更具交互性,我们将鼠标指到的国家高亮显示。这一事件被称为“当碰到(鼠标指针)时”,我们只需要把克隆体的亮度增加50:

       

      第12步——恢复亮度

      还有个小问题:当鼠标移开某个国家之后,这个国家仍然是高亮的。为了恢复初始亮度,需要等到鼠标移出某个国家后再使亮度减小50:

      最终结果如下:

       

      下一步

      这个项目还可以扩展成其他样式,有很多种方法。如下是一些例子:

      • **在舞台上打印贫困率:当鼠标指到某个克隆体,我们就在舞台上打印对应的国家和贫困率。

      • **其他指标:除了贫困率,还可以显示其他一些重要的指标,如平均寿命或者儿童死亡率.

      posted in 小教程
      C
      creaticodeteacher2-mail
    • 克隆角色

      介绍

      在有些项目中,我们需要用到很多个表现相同的对象。例如,我们想让10只小狗在舞台上随意走动。比较幼稚的方法就是创建10个小狗角色并分别添加代码积木。问题是,大部分代码是相近的,所以我们要重复添加相同的积木10次。

      更好的方法就是用“克隆”。当我们克隆某个角色,就是新建这个角色的副本,包括其代码积木、造型和声音。不过,一个主要区别就是,只有当程序开始运行后我们才新建角色副本。所以,在程序开始后,我们对角色的代码和造型所做的全部更改都会完好无损地复制过去。当程序结束时,所有克隆体都被自动删除。

      与克隆相关的所有积木都在“控制”类别:

       

      如何克隆?

      可使用该积木进行克隆:

      • 角色列表:第一个参数指定克隆哪个角色。“自己”就是该积木所在的本角色。如果项目中还有其他角色,例如“篮球”、“棒球”,其名称也会显示在该列表中。

      • 克隆体ID编号:第二个参数可以给克隆体赋值一个数字或文本。如果空着,就会给新的克隆体赋值一个随机的唯一ID。

      例如,这个程序会创建3个克隆体,ID编号分别为“1”、“2”、“3”。

      注意:你看不出来有3个克隆体,因为克隆体都和原角色重叠在一起,位置、大小和造型都完全一样。

       

      创建克隆体后运行的代码

      生成克隆体后,为了让克隆体做一些行为,你可以在这个积木下面添加新的代码积木:

      例如,这段代码让每个克隆体移动到随机位置,这样我们就能清楚看到全部克隆体。注意,原角色不受克隆体行为的影响。

       

      克隆体ID编号

      当创建好所有克隆体之后重新调用这个积木,每个克隆体被赋值一个唯一ID。利用这个积木,每个克隆体都能找出自己的ID。

      例如,我们可以让克隆体报告自己的“克隆ID”:

       

      让克隆体删除自身

      利用这个积木,克隆体做完行为后就可以删除自身:

      注意:不能在这个积木下面连接其它积木,因为克隆体已经被删除。

      在如下示例中,我们让每个克隆体说出自己的“克隆ID”,时长2秒,然后删除自身。

       

      获取克隆体的信息

      舞台下方的角色面板只显示原角色的信息。无论如何,原角色仍然能利用这个积木根据克隆体的ID获取其信息:

      • 属性名称:第一个下拉菜单包含了所能读取的克隆体的属性列表,比如位置、方向和造型。

      • 角色名:第二个下拉菜单指定你想查询哪个角色或者克隆体。
        例如,生成3个克隆体后,你可以通过原角色获取克隆体的“x位置”。

       

      利用消息与克隆体通信

      尽管你可以在积木“当作为克隆体启动时”下面添加克隆体的代码积木,但这些积木只能运行一次。与克隆体“通话”的另一种方式就是广播消息。其好处就是,你什么时候都可以发送消息。

      例如,在这个程序中,生成所有克隆体后,我们在原角色广播“消息1”。还有一个积木用来接收这个消息。因为所有克隆体的代码与原角色相同,所以都会运行这一叠积木“当收到消息( )”。

      注意:原角色尽管不是克隆体,但也会响应“消息1”,并且也有一个随机“克隆ID”。一个普遍的做法就是,只让克隆体运行,隐藏原角色。比如,我们可以检查一下“克隆ID”是否属于我们赋予克隆体的ID范围。如果不是,那我们就在原角色的代码中,所以什么都不做并隐藏角色。

      posted in 二维积木
      C
      creaticodeteacher2-mail
    • 列表的使用

      介绍

      大家已经学过了列表简介、用积木编辑列表以及读取列表。本文将介绍其他一些有关列表使用的高级积木。

       
       

      列表排序

      可以用以下积木使列表项按顺序排列:

      Animation1.gif

       
      提醒一下,这个积木也可以用于文本组成的列表。对每个列表项的第1个字符进行比较并确定大小。而中文字符的大小是根据Unicode编码确定的。例如,“秋高气爽”要小于“风和日丽”,因为在Unicode编码中,“秋”排在“风”前面。

      如果两个列表项的第1个字符相同,则比较第2个字符,以此类推。例如,“冰天雪地”要小于“冰清玉洁”,因为两者都以“冰”开头,第2个字符“天”在Unicode编码中排在“清”前面。

      注意,英文字母不区分大小写。

      Animation2.gif

       
       

      随机打乱列表

      积木“随机打乱( )中各项的顺序”,为每一个列表项随机分配一个位置,类似于洗牌。

      Animation3.gif

       
      举个例子,比方说你需要打印全班学生的姓名,但你想让名单随机排序,这样的话别人就猜不出下一个是谁。你只需要随机打乱姓名列表。

      Animation4.gif

       
       

      反转列表

      可以用积木“反转列表( )”使列表顺序反转。第一项变为最后一项,第二项变为倒数第二项,以此类推。如果你反转2次,就得到和原来一样的列表。

      Animation5.gif

       
       

      把列表项连接成字符串

      可以把列表的所有项连接成一个长字符串,并且可以指定一个分隔符放在相邻项之间。

      Animation6.gif

       
       

      把字符串分割成列表项

      与“连接”相反的就是“分割”。你可以把一个长字符串分割成若干个列表项,并且可以指定分隔符。

      Animation7.gif

       
       

      将一个列表附加到另一个列表

      可以把一个列表附加到另一个列表,也就是说把一个列表的全部项附加到另一个列表的底部。例如,当你把“数字2”附加到“数字1”,列表“数字2”不变,只是它的3个列表项会被附加到列表“数字1”底部。

      Animation8.gif

       
       

      把一个列表复制到另一个列表

      还可以把一个列表复制到另一个列表。首先会把目标列表的原有项全部删除,复制之后,两个列表完全相同。

      Animation8.5.gif

       
       

      生成随机数列表

      “运算”类别的积木“在( )和( )之间取随机数”会生成某一范围内的随机数。如果你想生成一系列随机数,就可以用如下积木。

      注意:如果允许重复,就有可能出现相同的数。如果不允许重复,生成的列表就没有相同的项。

      Animation9.gif

       
       

      遍历一个列表

      你可以遍历一个列表并查看列表中的所有项。

      首先,你可以用积木“对于每个项目( ) 在( )”,把列表中的每一项的值赋给变量:

      Animation10.gif

       
      还可以用一个索引变量访问列表中的所有项。索引变量从1一直涨到等于列表的长度。可以在这个循环中用变量读取列表。

      Animation11.gif

      posted in 二维积木
      C
      creaticodeteacher2-mail
    • 计算两点之间距离的运算积木

       

      先修科目

      • 组装积木

       

      什么是“直线距离”?什么是“曼哈顿距离”?

      假如你在上方地图的起点,你想走到终点。如果你沿直线行走,路线的长度就是这两点的直线距离。在地图上用黄线来表示。

      不过,在很多情况下你无法走直线。比如说,街区之间有房屋和建筑物,就像曼哈顿市一样。在这种情况下,你必须沿着横向街道和纵向街道行走。这些线的总长度就是这两点的“曼哈顿距离”。

      起点与终点之间的直线距离和曼哈顿距离,下方还有几个例子:
       
      示例1:

       

      示例2:

       
      示例3:

       
       

      积木

      积木“计算距离x( ) y( ) 到 x( ) y( ) 方法(直线距离/曼哈顿距离)”是运算类别的报表积木。


       

      这个积木怎么用?

      这个积木会显示两个指定点的距离。

      在创益编程中,“点”、“角色的位置”都是用x坐标、y坐标来定义的。

       
      需要在积木中输入两个点的坐标值,并点击下拉菜单选择“直线距离”或“曼哈顿距离”。

      用法如下:


       

      posted in 二维积木
      C
      creaticodeteacher2-mail
    • 检测某个键是否被按下

      介绍

      可以用如下2个侦测类别中的布尔积木检测某个键是否被按下:

       
       

      积木:“【请选择】键被按下?”

      当这个积木运行的时候,如果指定的键被按下,积木就报告“true(真)”;否则就报告“false(假)”。

      Animation1.gif

      在下拉菜单中点击任意一个键即可选中该键:

      Animation2.gif

       
      假如你选择“任意”键,如果任意一个键被按下,这个积木就报告“true(真)”。

       
       

      积木:“(请输入)键被按下?”

      对于这个积木,你可以输入指定的键,而不是在下拉菜单中选择。还可以把变量作为输入值:

      Animation3.gif !

       
      注意:这个积木的输入值不区分大小写。

       
       

      一个常见错误

      一个常见错误就是用单个积木“如果( )那么”来检测是否按下键:

      Animation4.gif

      这行不通,因为当你点击绿旗按钮时,程序就迅速运行完这2个积木——“如果( )那么”和“( )键被按下?”。因此,当你点击绿旗之后再按下向右箭头,程序就没有反应,因为程序早已经结束了。

       
       

      结合“重复执行”、“如果( )那么”

      大多数情况下,正确方式就是将侦测积木“( )键被按下?”与积木“重复执行”、“如果( )那么”一起使用。这样的话,程序会重复不停地检测是否按下某个键。

      例如,当按下向左箭头时球向左转,当按下向右箭头时球向右转。

      Animation5.gif

       
       

      同时检测2个键

      还可以检测2个键是否同时被按下。例如,当同时按下“a”和“w”,球就转动。如果只按下一个键,球就不转。

      Animation6.gif

      posted in 二维积木
      C
      creaticodeteacher2-mail