Scratch3自定義積木塊之新增積木塊


在Scratch3.0的二次開發中,新功能的研發和擴展離不開積木塊的添加,這篇主要講解Scratch3.0中新增積木塊部分

Scratch3.0中對於新增積木塊有兩種方式:

1. 初始化積木塊方式

    在scratch3.0界面默認打開時展現出的積木塊(如運動、外觀、聲音、事件等)

     

 

2. 拓展方式

 通過添加拓展實現新的功能和積木塊的添加(如官方默認的畫筆、microbit等拓展功能)

    

這篇會講解第一種方式的添加方式,第二種方式請關注后續文章。

Scratch-blocks: Scratch Blocks是基於谷歌的Blockly實現的基於文本和圖形格式編程的框架,Blockly主要的工作在於積木定義及代碼轉換,不過在Scratch Blocks對於Blockly的部門功能做了精簡,如Blockly中的代碼轉換功能,這部分內容會在后續的硬件通訊和燒錄中詳述。第一種方式實現主要工作就在Scratch-blocks中。

blocks_common: 一些積木塊中通用類型控件的定義,如積木中用到的顏色選擇器

blocks_horizontal: 橫向布局的積木定義,如scratchjr、lego wedo相關的app布局 - 主要針對的是積木塊的布局定義

blocks_vertical: 豎向布局的積木定義,當前scratch3默認的布局方式

積木的定義在scratch-blocks下的blocks_vertical目錄,以運動 -> 移動 積木為例

 

 一個定義積木的結構:

message0: 積木塊的文本定義,這塊采用了多語言庫scratch-l10n,對於不同語言的定義在此庫中進行添加

 args: 積木參數的定義。在積木文本中通過換位符進行定義 %1 - args0, %2 - args1 。。。。。

    參數類型定義根據不同需求,如下拉列表、文本框、顏色選擇器等,可根據不同的現有積木進行參考。

 

Scratch-blocks編譯:

參考官方上的編譯步驟進行操作

注:scratch-blocks在windows下由於文件長度限制編譯會失敗,需要在liunx等其他平台下進行編譯。

 

設置GUI展示新增的積木:

 需要在gui中的默認toolbox xml定義中加入新增加的積木塊項

具體路徑:scratch-gui/src/lib/make-toolbox-xml.js

 

Scratch3仍處於官方修復階段,二次開發甚至官方說明比較少,對於二次開發的先行者在使用和開發的過程中會遇到種種問題!

歡迎志同道合者多多溝通、相互交流! 

QQ群:452783077  - Scratch3.0二次開發交流群

個人QQ:438759715


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM