代码块_scratch 新建自己的代码块

再新建代码块之前 更改scratch-blocks代码 需要重新编译,

可以看这篇文章<blocks免编译>

首先找到目录scratch-gui-developsrclibmake-toolbox-xml.js

gui里面的代码块都在这里(扩展的除外)

const variables = function () {//关节变量
    return `
    <category
        name="关节型变量"
        id="variables"
        colour="#ff1a39"
        secondaryColour="#DB6E00"
        >
        <block type="data_variable" backgroundcolor="red">
            <value name="DEGREES">
                <shadow type="math_number">
                    <field name="NUM">15</field>
                </shadow>
            </value>
        </block>
        <block type="data_setvariableto">
            <value name="DEGREES">
                <shadow type="math_number">
                    <field name="NUM">15</field>
                </shadow>
            </value>
            <value name="x">
                <shadow id="movex" type="math_number">
                    <field name="NUM">0</field>
                </shadow>
            </value>
            <value name="y">
                <shadow id="movey" type="math_number">
                    <field name="NUM">0</field>
                </shadow>
            </value>
            <value name="z">
                <shadow id="movex" type="math_number">
                    <field name="NUM">10</field>
                </shadow>
            </value>
            <value name="a">
                <shadow id="movey" type="math_number">
                    <field name="NUM">9</field>
                </shadow>
            </value>
        </block>
    </category>
    `;
};

再找到之前免编译的文件scratch-gui-developsrclibscratch-blocks-modifyblocks_svg.js

Blockly.Blocks['data_setvariableto'] = {
    /**
     * Block to set variable to a certain value
     * @this Blockly.Block
     */
    init: function () {
      this.jsonInit({
        "message0": "将变量 %1 X值设为 %2 Y值设为 %3 Z值设为 %4 A值设为 %5",
        "args0": [
          {
            "type": "field_variable",
            "name": "VARIABLE"
          },
          {
            "type": "input_value",
            "name": "x"
          },
          {
            "type": "input_value",
            "name": "y"
          },
          {
            "type": "input_value",
            "name": "z"
          },
          {
            "type": "input_value",
            "name": "a"
          }
        ],
        "category": Blockly.Categories.data,
        "extensions": ["colours_data", "shape_statement"]
      });
    }
  };

args0里面的name值一定与make-toolbox-xml.js里面的name值一样 否则会这样

edf80fe6fb0361a1e27d2335ea0a1a6b.png

message0里面的汉字一定要从%1 开始 ;有几个%n, args0里面就有n个{ },

如果variables是新建的 要在下面添加:

const variablesXML = moveCategory('data') || variables(isStage, targetId);
const everything = [
        xmlOpen,//不动
        variablesXML, gap,//关节型变量
      
    ];

全部ok了效果就出来了

c06560d8c404ec7519c8807f4ada5461.png

要想改变形状 可以看 《blocks的类型》

14a82e221b3dfed2aedf718d564b203a.png
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值