复制物体
-
预备知识
介绍
有时候我们会需要添加几个相似的物体(形状、角色或模型)。举个例子,假设我们需要创建一个有很多树木的森林。如果我们把每棵树都用添加一个新物体的方式来加到场景中,就会花费很多时间来添加,并且程序也会因为更大的电脑记忆使用量而运行得更缓慢。
因此,我们可以简单地添加一棵树,然后添加很多个树的复制体。这会让你的程序运行得更快速。
复制物体的编程积木
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/b8840308-7e35-4ca5-acf1-f1b7bf4c677c.png" width="500" style="">
-
分享数据与否: 如果选项为”是“,那么被复制的物体将会和原本的物体分享一样的数据,比如网格(组成物体的小平面)、材料(材质和颜色)、以及动画框;如果选项为“否”,那么被复制的物体将会有他自己的材料,并没有动画。
-
新物体名称: 被复制物体的名称。
演示1 - 很多看起来一样的复制体
在这个例子里,我们需要很多看起来一样的树,所以我们可以创建他们,并把”共享数据 = 是“。
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/2b266ca4-cb43-48c4-bc59-6fe1adc23c38.gif" width="500" style="border-radius: 5px; border: 1px solid #29622d;">
以下展示完整程序:
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/82c9a077-736c-4929-9506-52ed74b764a1.png" width="800" style="filter: drop-shadow(0.35rem 0.35rem 0.4rem rgba(0, 0, 0, 0.5));">
需要注意的是,我们创建一个复制体后,复制体会马上成为新的被选择的角色物体。在这个例子里,我们不是创建了100个第一棵树(名为”树木1”)的复制体。相反地,第二棵树是第一棵树的复制体,而第三棵树是第二棵树的复制体,以此类推。
演示 2 - 很多个颜色不同的复制体
在这个例子里,我们依然要复制同一个礼物盒子很多次,但是我们要把它们的材料更新成不同的颜色。因此,当我们创建复制体时,我们需要设置成共享数据 = 否。
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/ae172346-ccca-4211-a293-c387cdd15687.gif" width="500" style="border-radius: 5px; border: 1px solid #29622d;">
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/2e1a6ec2-1926-4fe9-83e2-f93759af0559.png" width="1000" style="filter: drop-shadow(0.35rem 0.35rem 0.4rem rgba(0, 0, 0, 0.5));">
演示3- 一个角色的很多复制体,运行同一个动画
假设你要在场景中有很多头跑来跑去的猪,你可以用共享数据来创造他们,然后他们全部将会看起来一样,并运行一样的动画:
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/0e913222-daeb-46eb-b823-1b531ec26b73.gif" width="500" style="border-radius: 5px; border: 1px solid #29622d;">
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/476eee77-7289-49a4-b936-584a28bb603d.png" width="1000" style="filter: drop-shadow(0.35rem 0.35rem 0.4rem rgba(0, 0, 0, 0.5));">
演示4 - 没有连接的复制体,颜色和动画都不一样
在这个例子里,复制体的大象被复制了,但是并没有跟原本的大象开启数据分享。就像动画展示的那样,他们可以有不一样的颜色和动画:
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/39532dbb-23ee-497d-9f18-5fb21d13f1bc.gif" width="500" style="border-radius: 5px; border: 1px solid #29622d;">
https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/2472090d-8387-462d-aab3-5e1bcaf2fe93.png" width="1000" style="filter: drop-shadow(0.35rem 0.35rem 0.4rem rgba(0, 0, 0, 0.5));">
-
-
I CreatiCode pinned this topic on
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login