请选择 进入手机版 | 继续访问电脑版

[相关技巧] 详解scratch3.0二次开发 之scratch-blocks中的blocks的范例 、定义和利用 方法

[复制链接]
查看107 | 回复7 | 2021-9-13 09:00:15 | 显示全部楼层 |阅读模式

scratch-blocks是scratch-gui依靠 的一个基本模块。它的作用是天生 gui界面上的blocks。(有关scratch-blocks的方法可以看我上一篇博客《scratch3.0二次开发 之scratch-blocks的免编译修改方法》)。blocks的作用是通过拖曳的方法构成 blocks堆块,点击greenflag控件,舞台区(stage)会有相应的变化。

在这里插入图片形貌

scratch-gui的blocks的天生 文件在scratch-blocks\blocks_vertical里。

blocks几种外形

blocks块的外形 有以下几种:

外形 名称
详解scratch3.0二次开发

之scratch-blocks中的blocks的范例
、定义和利用
方法
shape_statement
详解scratch3.0二次开发

之scratch-blocks中的blocks的范例
、定义和利用
方法
shape_hat
详解scratch3.0二次开发

之scratch-blocks中的blocks的范例
、定义和利用
方法
shape_end
详解scratch3.0二次开发

之scratch-blocks中的blocks的范例
、定义和利用
方法
shape_statement
详解scratch3.0二次开发

之scratch-blocks中的blocks的范例
、定义和利用
方法
output_boolean
详解scratch3.0二次开发

之scratch-blocks中的blocks的范例
、定义和利用
方法
output_number
详解scratch3.0二次开发

之scratch-blocks中的blocks的范例
、定义和利用
方法
output_string

一个blocks块的定义

比如一个右转多少度的块

在这里插入图片形貌

定义块的代码:

  1. Blockly.Blocks['motion_turnright'] = {
  2. /**
  3. * Block to turn right.
  4. * @this Blockly.Block
  5. */
  6. init: function() {
  7. this.jsonInit({
  8. "message0": “右转 %1 %2 度”,
  9. "args0": [
  10. {
  11. "type": "field_image",
  12. "src": Blockly.mainWorkspace.options.pathToMedia + "rotate-right.svg",
  13. "width": 24,
  14. "height": 24
  15. },
  16. {
  17. "type": "input_value",
  18. "name": "DEGREES"
  19. }
  20. ],
  21. "category": Blockly.Categories.motion,//块归属的类,这里是运动类。
  22. "extensions": ["colours_motion", "shape_statement"]
  23. });
  24. }
  25. };
复制代码

“message0“:表示块里表现 的字符串,%1,%2表示块里的字段field,块里有1个field是%1,有两个field是按先后次序 设为%1,%2,以此类推,
”args0”:内里 的数组元素对应上面设置的field,args0[0]对应%1,args0[1]对应%2,…。每个元素对象表示设置了的field的范例 。

在这里插入图片形貌

“extensions”:"colours_motion"设置块的颜色,"shape_statement"设置了块的外形 ;

blocks块的利用

定义好的block块,利用 的时间 要把加到xml文件里,文件地址:scratch-gui\src\lib\make-toolbox-xml.js,找到对应的类,这里是motion.

  1. <block type="motion_turnright">
  2. <value name="DEGREES">
  3. <shadow type="math_number">
  4. <field name="NUM">15</field>
  5. </shadow>
  6. </value>
  7. </block>
复制代码

motion_turnright 这是刚定义好的块。value 标签中的name,表示变量名,在scratch-vm内里 会用到,shadow标签这段表示预先设置的值,也是预先设置的块。去掉value这段代码

  1. <block type="motion_turnright"> </block>
复制代码

它表现 成如许 :

在这里插入图片形貌

scratch-blocks的编译

scratch-blocks修改后的文件,只有编译压缩后才能见效 。但是按照官方的方法,windows下很难编译成功。假如 是定义blocks块,可以参考上篇博客里先容 的方法《scratch3.0二次开发 之scratch-blocks的免编译修改方法

补充

下面看下scratch3.0二次开发 之blocks天生 代码思绪

总的思绪 :

  1. 引入一个天生 代码的文件,比如要天生 arduino代码,就要引入天生 arduino代码的文件,要天生 python代码,就要引入python文件。
  2. 假如 scratch-block中没有本身 要的blocks块,就定义一个blocks块用来天生 代码。(天生 的方法可以看我之前的文章《[scratch3.0二次开发 之scratch-blocks中的blocks的范例 、定义和利用 方法])》
  3. 给每个blocks定义要天生 的代码。
  4. 把天生 代码的代码blocks块加入make-toolbox-xml 中。
  5. 在gui中设置一个代码编辑区,用来表现 天生 的代码。

到此这篇关于scratch3.0二次开发 之scratch-blocks的免编译修改方法的文章就先容 到这了,更多干系 scratch blocks的免编译内容请搜索 脚本之家从前 的文章或继续欣赏 下面的干系 文章渴望 大家以后多多支持脚本之家!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

avatar wb47 | 2021-9-18 08:10:34 | 显示全部楼层
哥回复的不是帖子,是寂寞!
回复

使用道具 举报

avatar mzbua44 | 2021-9-18 08:33:50 | 显示全部楼层
青春不在了,青春痘还在!
回复

使用道具 举报

avatar 痴痴情先生先s | 2021-9-24 11:59:29 | 显示全部楼层
终于看完了,很不错!
回复

使用道具 举报

avatar 老橡树1 | 2021-10-4 09:51:54 | 显示全部楼层
刚分手,心情不好!
回复

使用道具 举报

avatar 123456833 | 2021-10-6 05:45:09 | 显示全部楼层
无图无真相!
回复

使用道具 举报

avatar 123457660 | 2021-10-7 19:19:07 | 显示全部楼层
写得实在太好了,我唯一能做的就是默默顶贴!
回复

使用道具 举报

帖子好乱!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则