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

2022-04-17 03:53:08 字數 1640 閱讀 4997

在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_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二次開發***

自定義view之自定義屬性

1.首先在res的values檔案下新建乙個名為attrs.xml檔案 在該xml檔案中編寫我們需要的屬性 declare styleable後面的name必須要與接下來要自定義的view名一致。attr 後面的name表示需要自定義的屬性,format表示這些屬性的型別 2.新建乙個類繼承text...

3 自定義函式

用乙個自定義的猜數字函式來說明自定義函式怎麼寫。自定義函式 defgame min max import random number random.randint min,max 產生乙個需要猜的數字 while true guess float input 請在 d到 d之間才乙個數字 min,m...

Android自定義控制項之自定義View 二

效果如下圖 1 自定義ringview繼承view新增其構造方法並建立畫筆 public class ringview extends view protected boolean isrunning false public ringview context context public ring...