scratch游戏吧 关注:1,973贴子:9,694

【教程】Scratch1.4教程(除外设外)

只看楼主收藏回复

Scratch1.4所有教程
你制作游戏有问题吗?
你有脚本看不懂它吗?
你有问题难以启齿吗?
你有哪些技巧不会用?
Scratch1.4大多数脚本的分析和教程
目录:
第一章 入门
第二章 动作
第三章 外观
第四章 声音
第五章 画笔
第六章 控制
第七章 侦测
第八章 数字和逻辑运算
第九章 变量
第十章 链表


IP属地:上海本楼含有高级字体1楼2015-01-25 21:03回复
    第一章 入门
    很高兴你能够接触Scratch。Scratch游戏吧内,就是给大家一起来讨论用Scratch制作的游戏的!
    Scratch是一款由麻省理工学院(MIT)设计开发的一种面向少年的简易编程工具。较为常用的版本有Scratch1.4、Scratch2.0。同时,新的版本正在不断地添加。


    介绍了一下什么是Scratch,我们来进入Scratch软件的页面吧。

    进入了Scratch编程界面,可以看到左边的许多类似于积木的东西,这叫做脚本。

    看到左上角了么?脚本一共分为上图红色方框中的八类,之后我们将有详细的说明。不过这么多英文,如果我不是英语学霸,我也看不懂啊。这时候,让我们来切换语言。

    点击上面的灰色地球,这是切换语言(language)的按键。按下之后,我们可以在列表中找到“简体中文”,切换它。当然你也可以切换很多的其他语言。本教程以简体中文为主。
    我们要开始做游戏了。不过我看上面的文件名不是很舒服。而且如果我们做得很尽兴,电脑蓝屏了我们付出的努力就毁于一旦了。所以,保存文件是很重要的。不要忘了随时点击一下保存键,防止出问题。

    点击上图中蓝色方框中的按键,这便是保存作品的按键了。点击后,选择合适的保存路径,我们就保存好作品了。

    当然如果你的作品在你的眼中足够好,就点击上图中的蓝色方框。这是用来分享作品到Scratch官网的。

    之后我们能在菜单中看到很多的选项,我们来慢慢看看吧:
    新建:重新开始你的编程(在这个动作之前不要忘了先保存)
    打开:打开一个sb格式的文件(在这个动作之前不要忘了先保存)
    存档:让你的进程保存在你的电脑上。
    另存为:让你的进程以另一个作品的格式保存在你的电脑上。
    导入作品:让另一个作品所有的角色加入你的编程。
    输出角色:让你编程文件中的一个角色输出为一个独立的文件。
    作品注解:在你的作品打开的时候能看到注解。
    退出:关闭当前的编程(在这个动作之前不要忘了先保存)
    主要的话就是这个菜单中的选项比较实用。
    那么现在我要开始简易编程了。怎么添加角色呢?

    打开蓝色方框中的按键,找出你所需要的图片。

    打开后就可以从路径中找到相应的图片了。那么上图是Scratch默认的文件夹。

    如果你觉得你找不到合适的素材,你也可以自己画一张。

    你也可以按下上图方框中的按键,来看看系统会给你一个什么角色。


    IP属地:上海本楼含有高级字体2楼2015-01-25 21:21
    回复
      第二章 动作


      对于Scratch有一个简单了解了之后,就对脚本一个一个的给大家一个解析和作用的说明。动作篇:

      打开Scratch后,点击蓝色框的动作,进入左边的类似页面。
      脚本解释:
      移动(10)【注1】步:以当前角色的方向移动10个单位。如方向为90时,移动10步就为x坐标+10。
      旋转(顺时针)(15)度:顺时针旋转15度。【注2】
      旋转(逆时针)(15)度:逆时针旋转15度。
      面向(90)方向:设置当前角色的方向。方向将影响到移动n步、角色造型的变化。
      面向[ ]【注3】:设置当前角色的方向。可以选择面向鼠标指针、新角色。方向将影响到移动n步、角色造型的变化。
      移到(0,0):将当前角色的位置移到(0,0)处。
      移到[ ]:将当前角色的位置移动到另一个位置。可以选择移到鼠标指针、新角色。
      在(1)秒内,平滑移动到(0,0):在1秒内平移到(0,0)处。这个脚本注重点在于移动的过程。
      将x坐标增加(10):将当前角色的位置移到(x+10,y)。例如移动前角色位置为(0,0),执行该脚本后位置为(10,0)。【注4】
      将x坐标设定为(0):将当前角色的位置移到(0,y)。例如移动前角色位置为(10,0),执行该脚本后位置为(0,0)。
      将y坐标增加(10):将当前角色的位置移到(x,y+10)。例如移动前角色位置为(0,0),执行该脚本后位置为(0,10)。
      将y坐标设定为(0):将当前角色的位置移到(x,0)。例如移动前角色位置为(0,10),执行该脚本后位置为(0,0)。
      碰到边缘就反弹:设置在角色移动过程中如果碰触到场景边缘,使该角色朝反方向继续移动。例如角色从(0,0)处向90方向10步/次的速度匀速直线运动,碰到场景边缘后向-90方向10步/次的速度移动。
      □x坐标:显示x坐标。【注5】
      □y坐标:显示y坐标。
      □方向:显示方向。
      【注释】
      注1:在本教程的所有章节中,(n)的符号表示n为可修改的数字。例如移动n步中,n=一切数字。
      注2:在旋转角度前,请在下图处选择允许旋转/只允许左、右翻转。如果选择不允许旋转,该类型脚本会没有效果。

      注3:在本教程的所有章节中,[n]的符号表示n为选定内容。例如移到鼠标指针中,“鼠标指针”为脚本自带的选定框中选择的内容。
      注4:在“x坐标增加n”的脚本中,n可以取负数,则“x坐标增加-1”与“x坐标减少1”的含义一样。
      注5:效果图如下图。

      总体说明:
      动作章的所有脚本注重的是对于角色的位置、移动、旋转等的修改和设置。往往这类型脚本对于角色需要移动的状态下是比较重要的。本章节所有的脚本大多数都比较实用,尤其是“移动n步”、“面向n方向”、“移到(x,y)”、“在n秒内,平滑移动到(x,y)”,这四个脚本是本章中的重点脚本,相当实用。


      IP属地:上海本楼含有高级字体5楼2015-01-29 13:48
      回复
        第五章 画笔


        什么是画笔?在生活中,画笔就是一种添加美感的东西。在Scratch中,同样也存在着画笔功能。今天就让我们了解一下画笔章节。

        如图打开画笔的脚本栏。
        脚本解释:
        清除所有画笔:清除舞台上的所有画笔、图章效果。
        落笔:开始落笔。落笔之后,画笔将会生效。
        停笔:开始停笔。停笔之后,画笔不再生效。
        将画笔的颜色设定为{ }:将画笔的颜色改为特定颜色
        将画笔的颜色值增加(n):增加颜色值n,使画笔效果和颜色有所改变
        将画笔的颜色值设定为(n):将颜色值a改为n。
        将画笔的色度增加(n):增加色度n,使画笔光亮程度有所改变
        将画笔的色度设定为(n):将色度a改为n。
        将画笔的大小增加(n):修改画笔的大小(粗细程度)
        将画笔的大小设定为(n):将画笔的大小(粗细程度)设定为n
        图章:将角色的造型像图章一样被敲在屏幕上,一直保留直到清除所有画笔。
        总体说明:
        本章画笔章节可能对于大多数的游戏制作者或动画制作者来说并不是最重要。的确,画笔和图章的意义并不是很大。图章虽然可以使人们感觉有很多物体,但并不是实体。而且在2.0版本中已经有了克隆体。因此对于画笔章节的所有脚本仅作了解即可,作用不大。


        IP属地:上海本楼含有高级字体12楼2015-04-03 22:04
        回复
          第六章 控制


          认为自己已经有足够能力用Scratch了?不,还不够。控制章节是所有章节中最重要的章节之一。今天我们将介入了解和熟悉。

          脚本解释:(请先跳过解释,阅读注释1、3,然后再看本次解释)
          当绿旗被点击:开始文件时执行跟从脚本【注1】
          当按下[空格键]:按下空格键时,执行跟从脚本。
          当[角色1]被点击:当本角色【注2】被点击时,执行跟从脚本。
          等待(n)秒:等待n秒后接着执行当前脚本串【注3】
          重复执行:重复执行框内的跟从脚本【注4】直到结束。
          重复执行(n)次:重复执行框内的跟从脚本共n次,n次结束后也停止重复执行,执行框外的跟从脚本。
          广播[ ]:进行一个广播,名称为框内内容【注5】。随后立刻执行跟从脚本
          广播[ ]并等待:进行一个广播,名称为框内内容。但直到所有角色和背景关于这个广播开始的脚本串执行完毕时,再执行跟从脚本。
          当接收到[ ](广播):当接受到特定广播时,执行跟从脚本。
          如果< >就重复执行:当满足一个条件< >时,就重复执行框内的跟从脚本,直到结束【注6】
          如果< >:当满足一个条件< >时,就执行框内的跟从脚本(1次)。执行完毕后或不满足条件< >,直接执行框外的跟从脚本。
          如果< >……否则……:当满足一个条件< >时,执行如果~否则之内的跟从脚本;当不满足条件< >时,执行否则后~框内的跟从脚本【注7】。无论是否满足条件< >,执行相应的跟从脚本后执行框外的跟从脚本。
          直到< >前都等待着:直到条件< >才接着执行跟从脚本。
          重复执行直到< >:重复执行框内的跟从脚本直到满足条件< >。当不满足条件时,将一直重复执行;满足条件后,框内的跟从脚本执行完毕,再执行框外的跟从脚本。
          停止执行这个脚本:停止执行所在的脚本串。
          全部停止:停止所有脚本串。点击绿旗开始。
          【注释】
          注1:由于Scratch内并没有专业名词,因此给一个关于跟从脚本的定义:在本个脚本之后的一切脚本都叫做跟从脚本。例如:

          以显示为中立的脚本,则“移动10步”就是“显示”的跟从脚本。换一句话说,“移动10步”没有跟从脚本。当一个脚本串(注3)没有跟从脚本时,也就意味着脚本串执行完毕。
          注2:在当角色1被点击中,“角色1”将跟着角色名称的变化而变化。如:

          注3:对于Scratch内的所有脚本的集合,叫做脚本串。在本教程内出现绝大多数的名词,有注释说明的就不是官方用语。为了便于大家理解,就下了一些定义。如:

          回到之前的图。刚才说过,“移动10步”是“显示”的跟从脚本。而蓝色框内圈出了3个脚本的集合,就是一个独立的脚本串。一个文件可以容纳无数个脚本串。脚本串越多,文件所占空间越大。
          注4:对于框内、框外,举例:

          前两个脚本集中,“显示”指框内,“隐藏”指框外。“如果……否则……”等同。
          注5:在广播的使用中,添加广播的方法:

          点击框右边的三角形,拉取,点击“新建”。
          注6:在如果中,要达到效果往往要如下方法:

          如图,蓝色框内两个脚本串。第一个脚本串,如果的效果只被执行一次,也就是说最多只有1次执行“移动10步”。而下一个一满足条件< >,就可以移动10步。
          注7:如果否则的说明:

          当满足< >时,移动1步。当不满足< >时,移动2步。移动好后隐藏。
          总体说明:
          本章的重要性不可小觑,同时也在整个Scratch编程中起着极其关键的作用。所有脚本都很重要,因此都要了解用途。完成一个完整的编程,必须用到本章节。重要性极高,新人必须要了解的章节。可以考虑先看懂本章节,再进一步学习其他章节。


          IP属地:上海本楼含有高级字体13楼2015-04-03 22:31
          回复
            第七章 侦测


            在第六章的如果中,需要一个< >的条件。这个条件是什么呢?通过第七、八章我们分别会了解这两个模块。首先让我们学习一下侦测板块。

            脚本解释:
            碰到[ ]:当前角色碰到一个角色、边缘和鼠标指针的条件【注1】
            碰到颜色□:当前角色碰到选定颜色的条件。
            颜色a碰到了颜色b?:当前角色造型中的颜色a碰到颜色b的条件。
            询问{ }并等待:询问问题{ },直到回答结束接着执行跟从脚本【注2】
            □回答:屏幕上显示最近一个问题的回复。
            鼠标的x坐标:鼠标的x坐标的值。
            鼠标的y坐标:鼠标的y坐标的值。
            按下鼠标?:按下鼠标(左键)的条件。
            按键[ ]是否按下?:按下按键[ ]的条件。
            到[ ]的距离:当前角色到角色[ ]的距离值【注3】
            计时器归零:将当前计时器的值清零。
            □计时器:屏幕上显示计时器的值。
            [角色]的[ ]:指定角色的指定项目的值。
            □音量值:屏幕上的音量的值。
            □声音响亮?:声音响亮的条件,输出值为“成立”或“不成立”【注4】
            【注释】
            注1:对于< >类别的脚本,后面加上“的条件”三字,表示可以嵌入如果否则的条件。
            注2:对于询问问题页面的说明:

            在下面的聊天栏类似的地方输出问题的回答。输入后回答栏就会显示回答的内容。
            注3:对于距离的公式,等同于在平面直角坐标系中两点的距离公式√(x1-x2)²+(y1-y2)²。
            注4:对于<声音响亮?>的用途暂且不了解。如果在明了后将在楼中楼进行补充。
            总体说明:
            在本章节中存在一部分的条件。因此本章节应该在控制章节的基础上进行学习。对于“碰到角色1”、“询问问题并等待”、“按键xxx是否按下?”等比较常用,因此本章节的重要性也是比较重要的。


            IP属地:上海本楼含有高级字体14楼2015-04-04 17:36
            回复
              第八章 数字和逻辑运算


              无论你身处何地,学校里总会有一门学科叫做数学。这门学科既令人欢笑也让人痴醉。数字运算和逻辑都是数学的必需,也是Scratch的一部分。今天就让我们来了解数字和逻辑运算模块。

              脚本解释:
              (a)+(b):计算出a+b【注1】
              (a)-(b):计算出a-b。
              (a)*(b):计算出ab。
              (a)/(b):计算出a:b(a除以b,a与b的比值……)
              在(a)到(b)间随机选一个数:计输出值为c。若a≥b,则b≤c≤a;若a≤b,则a≤c≤b。
              (a)<(b):a小于b的条件。
              (a)=(b):a等于b的条件。
              (a)>(b):a大于b的条件。
              <a>且<b>:同时满足条件a和b的条件。
              <a>或<b>:满足条件a或b的条件。
              <a>不成立:不满足条件a的条件。
              将{a}加入到{b}的后面:使输出值为ab【注2】
              {a}的第一个字符:填入内容a的第一个英文(或数字、汉字)。
              {a}的长度:填入内容a的所有字符的数量。
              (a)除以(b)的余数:使a/b,保留余数,输出值为余数。
              将(a)四舍五入:将数字a进行四舍五入【注3】
              (a)的[ ]:使数字a进行框内的操作,如平方根,绝对值等。具体如sin等内容请自行百度。
              【注释】
              注1:在下列关于运算的脚本中,填入内容数字a必须为阿拉伯数字。
              注2:在这里可能是翻译错误。

              如图为English模式下的脚本。可能作者的意思是将hello作为宾语,并不是把hello加入world(的后面),而是想把world加入hello(的后面)。这个脚本由于翻译错误可能会给一些编程带来不必要的麻烦。

              在繁体翻译中,指:合并[ ]和[ ],意思就是合并为“你好文字”。简体中文翻译有问题,因此在此特以说明。
              注3:在对于任意一个数a(a为实数)中,四舍五入仅保留整数,也就是将a的小数部分进行四舍五入。如4.5的四舍五入输出为5,而将45四舍五入输出为45。此外,将4.55四舍五入输出为5。因此四舍五入保留至个位。
              总体说明:
              本章节中大多数的内容还是可能会被经常用到。例如加加减减乘乘除除,以及且、或、不成立等,都会被用于编程。此外还要注意“将xxx加入到xxx的后面”的效果,避免麻烦。


              IP属地:上海本楼含有高级字体15楼2015-04-04 20:03
              回复

                起演示作用,就将名字设定为“教程2”吧。那么设定为只适用于这个角色有什么用途呢?

                新创一个角色,名字叫做角色2。仔细观察的同学们就会发现,左边的变量的脚本栏中并不显示教程2。也就是说,教程2的变量不适用于角色2,只适用于角色1。就算你创建100个角色也不会有角色在未做其他设置的情况下为教程2的变量所适用。而且不同角色的只适用于自己角色的变量值的名字可以相同(当然不能与适用于所有角色的变量名称相同),但是会储存不同的值。在舞台上,只适用于角色1的变量名字为教程2,在舞台上变量的名字叫做:角色1 教程2。这说明了教程2这个变量在舞台上看起来属于角色1,不属于角色2。

                回到角色1的变量。删除变量怎么删除呢?在新建按钮下有个删除按钮,选择好要删除的变量。如果误删了那就对不起了,除非读取原来的文件,否则是不可复原的。所以使用删除变量也要谨慎,千万不能一失足成千古恨。
                【注释】
                注1:之前我们新建变量都是在角色中新建。在舞台中新建有什么效果呢?

                再比较下图:

                都可以发现,在舞台中创建变量,不可以只属于舞台。因此在舞台中加变量一定是适用于所有角色的。当然这是一个细节,没有很大的重要性,不过也要注意。
                总体说明:
                变量和链表是Scratch中可能是最难理解的部分,同样在讲解完毕后也会以用之为趣。做动画需要它,做游戏更需要它。变量可以记录分数,记录游戏币,记录你一切都可以想到的内容。因此变量也是做Scratch的必修课。理解变量,可能会更加容易理解链表。


                IP属地:上海本楼含有高级字体17楼2015-04-04 20:29
                回复
                  第十章 链表


                  Scratch基本脚本课程已经接近尾声了,同时面对你的也是很多新手难以理解的一个版块——链表。它有什么用?能干什么?很多新手望而却步。当然在Scratch2.0中对于链表有更多的优化。在结尾处也会有所补充。那么接下来我们就来接触神秘的链表。相信在我的分析下,大家都可以看懂链表。

                  点击变量,显示脚本栏。选择新建链表。

                  新建链表,名称在本章节中称为“教程”。下面选择适用所有角色和只适用于本角色,在变量章节中有完全地说明了。链表模块中作用相似,也就不额外说明了。此外在舞台中也是同理,不能选择只适用于本角色。

                  新建链表后,跳出来了很多东西。舞台右上角是链表栏。在Scratch1.4中,只能通过左边方块,在教程圆圈左边的方框内选择打钩或去除打钩来显示或隐藏链表。接下来就是脚本解释:
                  将[a]插入链表[b]:在链表b内新建一项,内容为a。
                  如果链表已经有了5项,那么新建的就是第6项。
                  图1
                  将内容插入后,就会显示最后项为你所加入的内容。长度指项的数量。图中“内容”称为一项,完整地说就是链表[教程]的第(1)项。
                  删除链表[b]的第(a)项:删除链表b中的第a项(其中,a为正整数,且a小于等于链表的项数n)
                  执行脚本后:
                  图2
                  在之前图的基础上删除教程的第一项,就会发现教程的第一项没了。
                  图3
                  如果教程内只有1项,然而要删除它的第2项,则不成立该脚本,没有任何效果。
                  将[a]插入到链表[b]的第(c)位置:使链表b中,加入一个新的项,使这个项为第c个项,内容为a。原本的第c项变为第(c+1)项。(其中,c是正整数,且c小于等于链表的项数n+1。
                  还原至图1,选择将[内容2]插入到链表[教程]的第(2)位置,则:
                  图4
                  效果如图4。如果我选择将[内容3]插入到链表[教程]的第(1)位置,则:
                  图5
                  效果如图5。而如果脚本的c>n+1(n为当前链表的长度,如图5:n=3,图4:n=2),则没有任何效果。
                  把链表[b]的第(c)项替换为[a]:将链表b中当前第c项的内容替换为a,项数不变。(其中,链表存在第c项)
                  还原至图1。如果选择将链表[教程]的第(1)项替换为[新内容],则:
                  图6
                  效果如图6。但当我在图1的基础上将c设定为2,由于链表不存在第2项(也就是说2大于链表的长度),则没有任何效果。
                  链表[b]的第(a)项:输出为链表b的第a项(其中,链表存在第a项)
                  链表[b]的长度:输出为链表b的项数。
                  如图1,则输出为1。
                  (链表)[b]包含[a]:链表b中包含内容a的条件
                  如图1,如果我将a=内容,则输出为成立;如果我将a=新内容,则输出为不成立。
                  所有链表板块的脚本很完整、很详细地介绍了。那么在舞台上的链表怎么操作呢?
                  图7
                  对于一个链表教程中,如图1所示。如果单击红色的内容文本框,就会进入图7的模样。链表中可以拆分为5个方框内的内容。浅红色框左边的“1”,表示当前的项目的次序,就是为链表的第几项。中间的“内容”,就等同于一个文本框,可以修改该项的内容,右边的叉,单击后可以删除该项。左下角的+键,可以新建一个新的项,可以进行编辑。而下方的长度则表示链表一共的项数。


                  IP属地:上海本楼含有高级字体18楼2015-04-04 20:55
                  回复

                    本教程为1.4教程,不过在这里稍微补充一下2.0的内容。对于之前链表的说明,曾说过在Scratch1.4中,只能通过打勾的方法来选择是否显示链表。而在Scratch2.0中,有上图的2个脚本。它们支持显示或隐藏链表,因此这是Scratch2.0的改进之一。可能这个改进没有多少人会注意,不过这也是一个有用的改进。改进的总会是好的。
                    总体说明:
                    在这里你已经了解了Scratch中所有非外设的110多个脚本的用途,可以说学习量还是比较大的。不过通过教程,你可以大致了解或熟悉地掌握这些脚本的用途。在下面将进行番外篇,将理论转换为实践。不过同时学习了十章内容,可以明显感觉到,变量和链表的内容很多,虽然脚本少,但是用途广泛,用起来活。因此一定要好好掌握它们。看好番外篇,你就可以放手一搏了!


                    IP属地:上海本楼含有高级字体19楼2015-04-04 21:00
                    回复
                      番外篇


                      掌握了所有理论,现在就来试试添加几个脚本串吧。

                      对于任意一个脚本串,总要有个执行开始。对于这类的脚本,形状为上图的形状。这类别的脚本在Scratch中全部集中于“控制”,一共有4个。以这样开始类型的脚本作为一个脚本串的开始吧。

                      拖出一个脚本“移动10步”。仔细观察你会发现它的形状并不是一个矩(长方)形,而是凹凸分明的一个凹多边形。有这样锯齿状凸出的脚本,我们暂且把它叫做锯齿脚本吧。这类脚本可以继承上面的脚本,也可以接着拖入跟从脚本。

                      两者合二为一就是这样。

                      当然你也可以一次性多拖几个脚本,这样一个脚本串将会变得很长很长,长度没有限制。

                      而仔细观察全部停止脚本,会发现只有凹陷没有凸出,我们把这类脚本权且称为结束类型脚本。这种类型的脚本数量并不多,全部在“控制”内。这类脚本一定没有跟从脚本。

                      而同时拖入这两个脚本,会发现绿色的脚本的形状是一个椭圆形,而移动10步中,10这个数字所在的图形也正是椭圆形。那么可以进行:

                      在任意一个脚本内具有椭圆形空格的脚本,你可以嵌入一个椭圆形的脚本,作为大的脚本的一部分。

                      再同时拖入这两个脚本,会发现蓝色的脚本的形状是一个六边形,这正是如果后面缺少的条件。因此:

                      将“碰到鼠标指针”可以嵌入“如果……”,成为如果的条件。
                      根据番外篇,你能了解添加脚本的方法。多来点脚本串吧,让他人看看你的编程能力!


                      IP属地:上海本楼含有高级字体20楼2015-04-04 21:11
                      回复
                        Scratch1.4教程(除外设)完结!
                        接下来开启对教程的交流、补充。
                        有任何补充可以在楼下发帖。
                        建议大家在不影响观看交流的情况下不开启只看楼主,可以吸取他人的经验。


                        IP属地:上海本楼含有高级字体21楼2015-04-04 21:12
                        回复
                          赞赞赞!


                          IP属地:天津来自Android客户端22楼2015-04-04 21:15
                          收起回复
                            一次更新那么多,lz不累吗我看的都累了


                            IP属地:河北来自iPhone客户端23楼2015-04-04 22:23
                            收起回复

                              再给大家看一个好玩的东西。注意左上角。有几个人知道这样怎么弄?我也是学个学长的。


                              IP属地:上海24楼2015-04-11 20:04
                              收起回复