Wikijunior:树莓派/Scratch游戏 – 迷宫
Andrew Oakley 编写的教程
公共领域 2016年4月24日
www.cotswoldjam.org
本教程使用Scratch 1.4版。它可以在树莓派、PC或Mac上运行。
Words you will see on the screen, or that you need to type in, are highlighted like this
在输入完内容后,通常需要按↵ Enter键。但是Scratch中没有太多打字操作 – 它主要使用鼠标。
你的导师应该已经从以下网址下载了本教程的文件:http://www.cotswoldjam.org/downloads/2016-04
你的导师应该已经解压缩了文件并将其保存在/home/pi/scratch/maze
文件夹中。你的导师可能需要创建scratch和maze文件夹。
点击菜单 - 编程 - Scratch启动Scratch。
点击窗口右上角的大正方形图标最大化窗口。现在它应该充满整个屏幕。
你还可以看到绿色旗帜,它启动程序,以及红色停止按钮,如果程序出错,可以使用它停止程序。
Scratch使用“舞台”一词来描述屏幕背景,并使用“角色”一词来描述居住在游戏中的角色、物体或怪物。
我们已经为你创建了舞台和角色。通过点击文件菜单 - 打开 - 点击Pi - Scratch - maze - maze1加载它们。如果系统询问你是否要保存当前项目,请点击否。
点击“人物”。
确保你选择了“人物”,而不是“树莓”。 |
Scratch中的编程是使用积木完成的。有很多不同的积木,它们按类别组织。
接下来,点击“控制”。你将看到控制积木。
将“当空格键被按下”拖到屏幕中间的脚本区域。
(要拖动某个东西,用鼠标指向它,按住鼠标左键,在移动鼠标到目标位置时保持按键按下,然后松开鼠标键)
当按下向右→箭头键时,我们希望移动游戏中的角色。
点击“当空格键被按下”中空格旁边的黑色三角形。将“空格”更改为“向右箭头”。
点击“外观”部分。
将“将x改变10”拖动到“当向右箭头键被按下”的下方,使其锁定。
为“向左箭头”创建另一组脚本。
在向左箭头脚本的“将x改变10”中,点击黑色三角形并将10更改为-10(负十)。使用delete和← Backspace键擦除10,然后输入:-10
按下向左←和向右→箭头键。角色应该向左和向右移动。
注意角色如何能够穿过左侧的蓝色迷宫墙。
树莓是否在移动而不是人物?正如我们在本章开头所说,确保你选择了“人物”,而不是“树莓”。
如果你在设置程序时遇到困难,可以加载“maze2”文件。
我们将使用变量来测试角色是否撞到了墙。
变量就像一个盒子,里面装有东西,通常是数字或单词。我们将创建一个名为movex
的盒子来存放数字。然后我们将检查将角色移动那么多位置是否会撞到墙。如果他们撞到了墙,我们将把角色再移回去。
我们还将创建一个子程序来执行墙体检查。子程序是可以由其他脚本调用的脚本。在Scratch中,我们使用“广播”命令来调用子程序,并使用“接收”来定义子程序的作用。
转到变量并点击“制作变量”。
输入:movex
…并点击确定。确保“movex”中没有空格。
我们需要删除“将x改变10”。抓住“将x改变10”并将其移出脚本框 – 例如,将其移回控制区域。它将消失。
在变量中,抓住“将movex设为0”并将其粘贴到“当向右箭头键被按下”下方。
点击值0
并将“将movex设为0”更改为“将movex设为10”(十)。
现在转到'控制并抓住“广播并等待”积木。将其粘贴到“将movex设为10”下方。
使用黑色三角形创建一个名为:domovex
的新广播
对左箭头重复上述步骤。记住使用-10而不是10。
现在通过将“当接收到domovex”从控制部分拖到脚本部分创建一个新脚本。
从外观部分,抓住“将x改变”并将其粘贴到“当接收到”下方。
从'变量部分,抓住“movex”并将其粘贴到“将x改变”上。现在它应该显示为“将x改变movex”。
从控制部分,抓住“如果”并将其粘贴到“将x改变”下方。
从侦测部分,抓住“碰到颜色”并将其粘贴到“如果”上。
点击“碰到颜色”中的深蓝色方块,然后从迷宫中选择一个宝蓝色墙壁颜色 – 鼠标指针将变成吸管;将其指向蓝色墙壁并点击。
从外观部分,抓住“将x改变”并将其粘贴到“如果”内部。
从运算部分,抓住“[] - []”(减号,减去)并将其粘贴到“将x改变”上。
将[]-[]更改为0-movex(从变量部分获取movex)。0是零。
如果你在设置程序时遇到困难,可以加载“maze3”文件。
我们正在做的是移动角色,检查他们是否撞到了墙,如果他们撞到了墙,则将角色再移回去。
点击绿旗图标运行程序。使用左箭头←和右箭头→控制人物移动。当人物到达左侧的蓝色墙壁时停止。
现在,使用y代替x,为上下方向创建相同的脚本。例如,创建一个名为movey
的新变量,一个名为domovey
的广播,并使用“改变y值”。点击绿旗运行程序。
现在,你应该能够控制人物在迷宫中四处移动了。
变量movex
和movey
可能会显示在迷宫上。你可以在**变量**部分取消选中它们的复选框来隐藏它们。
在每个domove脚本的末尾,广播一条名为“checkwin”的新消息。创建一个名为“checkwin”的新脚本,并检查人物是否接触到红色树莓的颜色。
从外观积木中,使用“说”指令告诉玩家他们赢了。记住在玩家获胜后将人物重置到其初始位置。
你也可以在点击绿旗时重置人物的位置,以防程序中途停止。
如果你在设置程序时遇到困难,可以加载文件“maze4”。
你可以通过添加一个计数器来统计移动次数,使游戏变得更好。
你需要创建一个名为“count”的变量。
你还需要一个“如果…否则”积木,而不是普通的“如果”积木。你可能需要向下滚动积木列表以找到“如果…否则”。“如果…否则”允许你在条件为真(人物触碰蓝色)时执行一项操作,在条件为假(人物未触碰蓝色)时执行另一项操作。
将domovex和domovey的“如果”指令更改为“如果…否则”指令。如果人物移动但没有撞到墙(“否则”部分),则“改变count值加1”(这在变量积木中)。
记住要确保选中变量“count”旁边的复选框,以便你可以看到玩家移动了多少次。**请参阅程序“maze5”以获取示例。**
本教程的原始PDF可以从维基共享资源获得。