前言
前面简单说了下整个工程的文件,这篇文章主要说说main.ts的结构
namespace
main.ts这个文件是makecode的程序的内容,其中namespace是主要框架
namespace test {
...
}
namespace的作用就是为了防止名字冲突,比如一个学校有两个小白的时候,为了区分他们,我们在他们的名字前面可能会加上8班小白,9班小白,或者小8白,小9白等等。namespace定义了标识符的可见范围(标识符指的是程序中元素的名称,例如变量,函数等等)一个标识符可以在多个namespace中定义,并且互不影响。
同时,在namespace中,可以使用JSDoc进行注释(关于JSDoc的介绍,可以看这里),对积木的颜色,权重,logo等等进行设置。
/**
* Provides access to basic micro:bit functionality.
*/
//% color=190 weight=100 icon="\uf1b9" block="Basic Blocks"
namespace test {
...
}
color 这个参数应包含在以//%开头的注释行中。 该颜色采用色相值或HTML颜色。
weight 这个参数定义的是权重,权重确定了这个插件在左边工具栏中的位置,权重越高在工具栏中越靠上。
block 这个参数是定义插件的名字。
icon 这个参数可以自定义你的插件图标,具体图标列表可以在http://fontawesome.io/icons/这个网站找到(如下图)搜索之后打开页面,将箭头指的地方就替换进去,即\u****

另外,如果你想让插件显示在下面advanced里面,需要在注释下面添加advanced=true。
/**
* Provides access to basic micro:bit functionality.
*/
//% color=190 weight=100 icon="\uf1b9" block="Basic Blocks" advanced=true
namespace test {
...
}
最终效果如下图:

积木分组
如果你想将扩展中的插件按功能分组,可以在注释那里添加一行以下代码(例如calculator、serial、others三个分组)
//% groups=['calculator', 'serial', 'others']
并在下面各个插件的注释中添加分组名字
//% group="serial"
最终代码如下:
/**
* pxt extension test
*/
//% color=190 weight=100 icon="\uf1b9" block="Test Blocks" advanced=true
//% groups=['calculator', 'serial', 'others']
namespace test {
/**
* Calculate the addition and return
*/
//% group="calculator"
//% blockId="Additioncalculation" block="the result of %length plus %width"
//% blockGap=2 weight=0 blockExternalInputs=true
export function Additioncalculation(length: number, width:number): number {
return length+width
}
/**
* Calculate the addition and return
*/
//% group="serial"
//% blockId="Multiplicationcalculation" block="the result of %length times %width"
//% blockGap=2 weight=0 blockExternalInputs=true
export function Multiplicationcalculation(length: number, width:number): void {
serial.writeNumber(length*width)
}
}
代码效果如下:

积木类别
积木大概分为两个类型,一个有输出的,一个没有输出的,可以参考上文中的代码,如果箭头指向的地方用的是void则是没有返回值的积木,用的是number则会生成有返回值的积木(具体代码效果可以看上面截图,这里就不重复放了)





暂无评论