【blockly教程】第六章Blockly的进阶
6.1 模块化程序设计
⼀个较⼤的程序⼀般应分为若⼲个程序模块,每⼀个模块⽤来实现⼀个特定的功能。所有的⾼级语⾔中都有⼦程序这个概念,⽤⼦程序实现模块的功能。⽐如在C语⾔中,⼦程序的作⽤是由函数完成的,⼀个C程序可由⼀个主函数和若⼲个函数构成,由主函数调⽤其它函数,其他函数也可以相互调⽤,同⼀个函数可以被⼀个或多个函数调⽤任意多次。在Blockly中,也⽀持函数的定义和使⽤。
在程序设计中,常将⼀些常⽤的功能模块编写成函数,放在函数库中供公共选⽤,所以要善于利⽤函数,以减少重复编写代码的⼯程量。
6.1.1 函数的定义形式
在C语⾔和别的语⾔中,函数的⼀个明显的特征就是使⽤时带括号(),必要的话,括号中还要包含数据和变量,称为参数(Parameter),参数是函数需要处理的的数据。根据参数的有⽆,可将函数简单的分为⽆参函数和有参函数。
这段话对于没有接触过C语⾔或其他编程语⾔的同学可能⽐较抽象,不过不必担⼼,接下来我们会通过Blockly向您详细的解释。
(1)⽆参函数的定义
上图是我们从Blockly⼯具箱中拖出的⼀个函数块,其中:对函数进⾏参数的设置,⽆参函数不需要⽤到此选项
对⼯具箱中的Blockly有了简单的了解之后,尝试动⼿设计⾃⼰的函数。
上图是⼀个简单的⽆参函数,它的函数名就叫“⽆参函数”,当你从⼯具箱拖动⼀个块在编辑区的同时,在⼯具箱中的函数选项卡中会⽣成⼀个对应的函数块,当再⽤到此函数时,就可以像使⽤其他⼯具箱中的块⼀样直接使⽤。
(2)有参函数的定义与⽆参函数不同,有参函数需要在“设置”中对参数进⾏设置,拖动“输⼊名称:x”⾄右侧“输⼊”中,并对参数进⾏命名即可。
同时,像⽆参函数⼀样,你也可以在左侧⼯具箱“函数”选项卡中看到对应的块。
(3)函数的返回值函数的另外⼀个明显的特征就是返回值,既然函数可以进⾏数据处理,那就有必要将将处理结果告诉我们,所以很多函数都有返回值,所谓的返回值就是函数的执⾏结果。
当创建的函数需要返回值时,可直接从⼯具箱中拖动⾃带返回值的函数块,可见⼯具箱中⽣成的函数块左侧带有凸起的连接。
这种⽅式⽣成的函数,只有当函数执⾏完成后才会返回值,如果在函数执⾏过程中就已经产⽣了想要的结果,也可以拖动”如果..返回”结束正在执⾏的函数,并返回执⾏结果。
注意:”如果..返回”在使⽤时,只有当函数最初设计有返回值时才有返回值,否则只是简单的结束正在执⾏的函数。
下⾯来做⼀个⼩练习,设计⼀个求x, y中最⼤者的函数,名为Max(x, y)。
可以按照思维导图,⼀步⼀步进⾏Max(x, y)函数的设计。在进⾏程序设计时,⽆论你是简单的学习,还是进⾏复杂的开发,在动⼿之前,⼀定要对你所设计的程序有⼀个良好的规划,磨⼑不误砍柴⼯,好的习惯很重要,它可以加速你编程⽔平的提升,提⾼你的编程效率。
当你设计完成后,剩下的就是测试验证程序结果了,测试时不需要很复杂,如果可以,最简单的就是使⽤”打印”。
6.2 Blockly开发⼯具
在前⼏章的学习中,每章开篇我们的⼩游戏环节,每个⼩游戏虽然是可视化编程,和我们学习的Blo
ckly很像,但是⼜有所不同,⽽这些不同由何⽽来?这就是我们本章所讲的重点,Blockly开发⼯具(Blockly Developer Tools),通过它⽤户可以⾃定义新块,这使得Blockly可扩展性⼤⼤提升,同时也是Blockly的灵活和强⼤之处。
本节⾯向希望在Blockly中创建新块的开发⼈员。它的基本要求是,有⼀个
c语言编程小游戏 可以编辑的Blockly的本地副本,⼤体上熟悉了Blockly的使⽤,并且对JavaScript有⼀个基本的理解。
Blockly带有⼤量的预定义块,从数学函数到循环结构的⼀切,然⽽为了与外部应⽤程序接⼝,必须创建⾃定义块以形成API。 例如,当创建绘图程序时,可能需要创建“绘制半径R的圆”块。⽽在⼤多数情况下,最简单的⽅法是到⼀个已经存在的真正相似的块,复制它,并根据需要修改它。
第⼀步是创建⼀个块; 指定其形状,字段和连接点。 使⽤Blockly Developer Tools是编写此代码的最简单的⽅法,或者,可以在学习API之后⼿动编写该代码,⾼级块可以响应于⽤户或其他因素⽽动态地改变它们的形状。
第⼆步是创建⽣成器代码以将新块导出为编程语⾔(例如JavaScript,Python,PHP,Lua或Dart)。为了⽣成既⼲净⼜正确的代码,必须注意给定语⾔的操作列表顺序,创建更复杂的块需要使⽤临时变量和调⽤函数,当输⼊使⽤两次并需要缓存时,这是尤为重要的。
Blockly开发⼯具是⼀个基于Web的开发⼯具,可⾃动完成Blockly配置过程的各个部分,包括创建⾃定义块,构建⼯具箱和配置Web Blockly⼯作区。
使⽤该⼯具的Blockly开发者进程包括三个部分:
1、使⽤块⼯⼚和块导出器创建⾃定义块。
2、使⽤Workspace Factory构建⼯具箱和默认⼯作空间。
3、使⽤Workspace Factory配置⼯作空间(当前是仅限Web的功能)。
6.2.1 定义⼀个块
定义⼀个块需要使⽤到Blockly开发⼯具中的块⼯⼚(Block Factory),块⼯⼚主要分为三个区域:
(1)编辑区:对新增块进⾏设计和编辑
(2)预览区:对编辑区编辑的块进⾏实时预览
(3)代码区:代码区分为两个部分Language code和Generator stub,其中Language code 区指定和控制新增块所呈现的形
状,Generator stub区负责新增块所要⽣成的代码。
在编辑区的左侧,可以看到4个基本块,Input,Field,Type和Colour,它们是四个原料库,使⽤者可以从这些库中获取所需要的任意“原料”,来合成⾃⼰的新块。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论