<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[增强现实 - 植树（仅限高级版，难度：2级）]]></title><description><![CDATA[<p dir="auto"> </p>
<h2><a class="anchor-offset" name="用到的相关知识"></a>用到的相关知识</h2>
<ul>
<li><a href="/topic/192/%E5%88%9B%E5%BB%BA%E4%B8%89%E7%BB%B4%E5%9C%BA%E6%99%AF">创建三维场景</a></li>
<li><a href="/topic/360/%E6%B7%BB%E5%8A%A0%E6%A8%A1%E5%9E%8B">使用模型</a></li>
<li><a href="/topic/365/%E6%B7%BB%E5%8A%A0%E5%B9%B3%E9%9D%A2">使用平面</a></li>
<li><a href="/topic/402/ar-world-tracking-camera-premium-only">增强现实世界摄像机</a></li>
<li><a href="/topic/369/%E9%80%89%E5%8F%96%E4%BA%8B%E4%BB%B6">选取三维物体</a></li>
<li><a href="/topic/535/%E5%B9%BF%E6%92%AD%E6%B6%88%E6%81%AF%E4%B8%8E%E6%8E%A5%E6%94%B6%E6%B6%88%E6%81%AF">广播消息</a></li>
</ul>
<p dir="auto"> </p>
<h2><a class="anchor-offset" name="介绍"></a>介绍</h2>
<p dir="auto">在这篇教程中，我们将制作一个增强现实（AR）游戏。玩家在地上点击即可植树。</p>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/d2c5c564-f203-45fd-8324-a1641db32c12.gif" width="450" style="border-radius:5px;border:1px solid #29622d" /><br />
 <br />
<strong>提示：对于前10步，大家可以用电脑来开发项目。但最后2步，要在带后置摄像头的移动设备上的浏览器运行项目，比如平板、智能手机。</strong></p>
<p dir="auto"> <br />
 </p>
<h2><a class="anchor-offset" name="第1步-新建一个带三维坐标轴的空场景"></a>第1步 - 新建一个带三维坐标轴的空场景</h2>
<p dir="auto">请新建一个项目，删除小狗角色，在“空的1”角色中添加如下积木。<strong>因为这个角色将包含地面，请将其改名为“地面”</strong>。</p>
<p dir="auto">大家可以在“三维场景”类别中找到积木“<a href="/topic/192/%E5%88%9B%E5%BB%BA%E4%B8%89%E7%BB%B4%E5%9C%BA%E6%99%AF">创建三维场景</a>”和“<a href="/topic/355/%E4%B8%89%E7%BB%B4%E5%9D%90%E6%A0%87%E7%B3%BB">显示三维坐标轴</a>”。</p>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/638a82b1-6df4-46dd-9747-9595d666d837.png" width="300" style="filter:drop-shadow(0.35rem 0.35rem 0.4rem rgba(0, 0, 0, 0.5))" /><br />
 <br />
如下所示， x轴指向右，y轴指向前（指向屏幕内），z轴指向上。大家可以在舞台上拖动鼠标使摄像机绕坐标系旋转：</p>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/dcebc38b-cc87-4eb8-a3f1-6252211315eb.gif" width="460" style="border-radius:5px;border:1px solid #29622d" /></p>
<p dir="auto"> <br />
 </p>
<h2><a class="anchor-offset" name="第2步-添加一个大平面"></a>第2步 - 添加一个大平面</h2>
<p dir="auto">在“地面”角色中，我们<a href="/topic/365/%E6%B7%BB%E5%8A%A0%E5%B9%B3%E9%9D%A2">添加一个大平面</a>，长宽都为1000000。颜色并不重要，因为我们在后续步骤中会使它透明。</p>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/85c61294-1cc7-4bdb-87b7-1d100e62b858.png" width="400" /><br />
 <br />
得到如下结果：</p>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/2cd894bc-b684-430b-96eb-67ad41c80c30.gif" width="470" style="border-radius:5px;border:1px solid #29622d" /></p>
<p dir="auto"> <br />
 </p>
<h2><a class="anchor-offset" name="第3步-开启鼠标选取事件"></a>第3步 - 开启鼠标选取事件</h2>
<p dir="auto">接下来，我们开启<a href="/topic/369/%E9%80%89%E5%8F%96%E4%BA%8B%E4%BB%B6">鼠标选取事件</a>，从而使玩家能够选取平面上的任意地方。</p>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/e082bf3e-d96d-4832-afef-be59578acebc.png" width="500" /><br />
 <br />
注意，这个新增积木的第1个输入框我们空着，这样的话，<strong>当前角色</strong>的任意物体都变成可选取的，包括第2步添加的平面。你也可以填写“地面”，结果一样。</p>
<p dir="auto"> <br />
 </p>
<h2><a class="anchor-offset" name="第4步-保存选取的位置"></a>第4步 - 保存选取的位置</h2>
<p dir="auto">现在我们处理选取事件。首先，我们添加2个新变量“目标x”和“目标y”，用来存放选取点的x坐标和y坐标：</p>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/7f564d9c-a3a3-42f2-bc4f-4234a9dff821.png" width="500" /><br />
 <br />
如果在场景中显示这2个变量，大家会看到，每当点击地面上的不同位置，这两个值就会发生变化。</p>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/d13a1e8f-bb5e-493f-a6f2-d9dd2f102f3f.gif" width="470" style="border-radius:5px;border:1px solid #29622d" /></p>
<p dir="auto"> <br />
 </p>
<h2><a class="anchor-offset" name="第5步-添加一个新角色-树"></a>第5步 - 添加一个新角色“树”</h2>
<p dir="auto">为了在三维世界中添加树，首先需要再添加一个角色“树”。这是关键的一步，<strong>如果大家在当前的“地面”角色添加树，那么这些树也将变成可选取的，这会让玩家感到混乱。</strong></p>
<p dir="auto">一般来说，对于这种世界跟踪增强现实项目，地面非常重要。我们只想让地面可被选取，所以我们要把其他全部三维物体放到别的角色中。</p>
<p dir="auto">现在有两个角色：“地面”和“树”。</p>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/bcba7674-2d84-4386-ae03-bfefaac24e0f.png" width="200" /></p>
<p dir="auto"> <br />
 </p>
<h2><a class="anchor-offset" name="第6步-发送和接收消息-植树"></a>第6步 - 发送和接收消息“植树”</h2>
<p dir="auto">这两个角色用<a href="/topic/535/%E5%B9%BF%E6%92%AD%E6%B6%88%E6%81%AF%E4%B8%8E%E6%8E%A5%E6%94%B6%E6%B6%88%E6%81%AF">消息</a>进行沟通。</p>
<p dir="auto"><strong>在“地面”角色中</strong>，每当玩家在地面上点击一个地方，就广播一条新<strong>消息“植树”</strong>：</p>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/6ae3aea0-3d9c-413f-a2d2-0b8a4aafca81.png" width="300" /><br />
 <br />
在“树”角色中，我们要接收这条消息，然后就可以添加树了：</p>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/99f2cf7b-ad2f-473c-a525-99d40f932e14.png" width="150" /></p>
<p dir="auto"> <br />
 </p>
<h2><a class="anchor-offset" name="第7步-当收到消息后添加一个树模型"></a>第7步 - 当收到消息后添加一个树模型</h2>
<p dir="auto">在“树”角色中，每当收到消息“植树”，我们就添加一棵树。默认情况下，树总是被添加到场景中心，所以我们要把树移到玩家点击的地方，点击的坐标位置存放于变量“目标x”和“目标y”。</p>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/a8c3e35b-cdfc-431a-86da-c885a301aa69.png" width="1000" /><br />
 <br />
现在，每当你点击地面，就会种植一棵树：</p>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/2c851aa6-d0c2-48f0-bf71-79ff9b763365.gif" width="500" style="border-radius:5px;border:1px solid #29622d" /></p>
<p dir="auto"> <br />
 </p>
<h2><a class="anchor-offset" name="第8步-隐藏和显示"></a>第8步 - 隐藏和显示</h2>
<p dir="auto">我们的方案有个小问题。新加的树总是先在原点出现，然后移动到选取点。慢放镜头如下：</p>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/6cc828b2-dc99-4f8e-856c-0161f8d32930.gif" width="500" style="border-radius:5px;border:1px solid #29622d" /><br />
 <br />
为了让树直接在选取点出现，我们可以用一个简单的方法：</p>
<ul>
<li>当我们添加树模型时，我们设置为隐藏。</li>
<li>把树移动到目标点后，后面放一个积木“显示”，即可改为可见：</li>
</ul>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/b06e9787-a1fd-4642-aea0-30bc0a3aaa9f.png" width="1000" /><br />
 <br />
改动之后，树就会出现在我们点击的地方：</p>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/cd23088c-529e-44d9-8300-991797262cad.gif" width="500" style="border-radius:5px;border:1px solid #29622d" /></p>
<p dir="auto"> <br />
 </p>
<h2><a class="anchor-offset" name="第9步-让树生长"></a>第9步 - 让树生长</h2>
<p dir="auto">为了更好玩，我们添加一个树生长的动画。要进行如下两处改动：</p>
<ul>
<li>每当我们添加树，可以让树起初非常小，目标高度设置为20。</li>
<li>树显示以后，我们<a href="/topic/357/%E8%B0%83%E6%95%B4%E7%89%A9%E4%BD%93%E5%A4%A7%E5%B0%8F">将其放大</a>10倍，用时非常短。</li>
</ul>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/83734811-2766-4e03-920b-79a9af6d881c.png" width="1000" /><br />
 <br />
现在我们就得到了树生长的动画：</p>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/56d9c4a2-1cd3-4403-8fa1-b9007e1b8751.gif" width="500" style="border-radius:5px;border:1px solid #29622d" /></p>
<p dir="auto"> <br />
 </p>
<h2><a class="anchor-offset" name="第10步-切换至增强现实世界跟踪仿真"></a>第10步 - 切换至增强现实世界跟踪仿真</h2>
<p dir="auto">到目前为止，增强现实方面的东西我们还没有做。现在该切换至增强现实模式了。回到“地面”角色，添加积木“<a href="/topic/402/ar-world-tracking-camera-premium-only">切换到AR世界摄像头</a>”。我们将开启仿真模式，并检查是否一切都运行正常。</p>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/cc206353-a4d5-429c-b89a-40521981479b.png" width="500" /><br />
 <br />
就得到如下结果。摄像机视野会稍有不同，但选取事件用法相同：</p>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/9d5901a0-3f7f-4706-b5ff-ebe63434790f.gif" width="500" style="border-radius:5px;border:1px solid #29622d" /></p>
<p dir="auto"> <br />
 </p>
<h2><a class="anchor-offset" name="第11步-连接真实世界"></a>第11步 - 连接真实世界</h2>
<p dir="auto">现在我们准备好连接到真实摄像头了。大家需要在移动设备上打开这个项目，例如平板电脑和智能手机。</p>
<p dir="auto">大家只需要把仿真模式改为“否”，即可打开真实摄像头。另外，我们把地面的颜色的透明度改为50%，这样就可以透过地面看到真实场景。</p>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/f6425b73-7035-4a4d-b5a2-7411c5c8fbe8.png" width="500" /><br />
 <br />
当你在移动设备上运行项目时，后置摄像头的影像会替代场景的蓝色背景，大家仍然可以点击地面植树：</p>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/519942a7-1a49-4056-955b-cf6473de3288.gif" width="416" style="border-radius:5px;border:1px solid #29622d" /></p>
<p dir="auto"> <br />
 </p>
<h2><a class="anchor-offset" name="第12步-整理项目"></a>第12步 - 整理项目</h2>
<p dir="auto">地面和三维坐标轴有助于开发项目，但在真实场景中明显会破坏所添加物体的画面。在发布项目之前，我们要把地面的透明度设为100%。注意，尽管我们看不到地面了，但选取事件对透明地面仍然管用。同时，我们还要把三维坐标系设置为隐藏。</p>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/390de1e8-9c2a-4b64-8038-94bc7db77618.png" width="500" /><br />
 <br />
最终演示效果如下：</p>
<p dir="auto"><img src="https://cdncreaticodecom.b-cdn.net/scratch-gui-projects/forum/d2c5c564-f203-45fd-8324-a1641db32c12.gif" width="450" style="border-radius:5px;border:1px solid #29622d" /></p>
<p dir="auto"> <br />
 </p>
<h2><a class="anchor-offset" name="创意扩展"></a>创意扩展</h2>
<p dir="auto">使用这个方法大家可以制作很多有趣的项目。大家是否想试试下方这些创意思路：</p>
<ul>
<li>
<p dir="auto"><strong>其他物体类型</strong>：大家可以添加其他类型的物体，如形状、模型和人物化身。大家还可以用按钮或者下拉菜单让玩家能够选择添加哪种物体。</p>
</li>
<li>
<p dir="auto"><strong>随机</strong>：每当添加一个新物体，大家可以把它的大小和颜色设置为随机。</p>
</li>
</ul>
]]></description><link>https://forum.creaticode.com/topic/941/增强现实-植树-仅限高级版-难度-2级</link><generator>RSS for Node</generator><lastBuildDate>Sat, 14 Mar 2026 08:26:00 GMT</lastBuildDate><atom:link href="https://forum.creaticode.com/topic/941.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 31 Mar 2023 13:27:43 GMT</pubDate><ttl>60</ttl></channel></rss>