feat(boards): python_mixpy下更新Turtle模块
增加screen.update、turtle.title和turtle.setup接口对应图形块
This commit is contained in:
@@ -437,6 +437,38 @@ export const turtle_bgcolor = {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const turtle_title = {
|
||||||
|
init: function () {
|
||||||
|
this.setColour(TURTLE_HUE);
|
||||||
|
this.appendValueInput('TITLE')
|
||||||
|
.setCheck(null)
|
||||||
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
||||||
|
.appendField(Blockly.Msg.MIXLY_TURTLE_TITLE_SET);
|
||||||
|
this.setInputsInline(true);
|
||||||
|
this.setPreviousStatement(true);
|
||||||
|
this.setNextStatement(true);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export const turtle_setup = {
|
||||||
|
init: function () {
|
||||||
|
this.setColour(TURTLE_HUE);
|
||||||
|
this.appendDummyInput()
|
||||||
|
.appendField(Blockly.Msg.MIXLY_TURTLE_SETUP_SET);
|
||||||
|
this.appendValueInput('WIDTH')
|
||||||
|
.setCheck(null)
|
||||||
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
||||||
|
.appendField(Blockly.Msg.MIXLY_WIDTH);
|
||||||
|
this.appendValueInput('HEIGHT')
|
||||||
|
.setCheck(null)
|
||||||
|
.setAlign(Blockly.inputs.Align.RIGHT)
|
||||||
|
.appendField(Blockly.Msg.MIXLY_HEIGHT);
|
||||||
|
this.setInputsInline(true);
|
||||||
|
this.setPreviousStatement(true);
|
||||||
|
this.setNextStatement(true);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
export const turtle_tracer = {
|
export const turtle_tracer = {
|
||||||
init: function () {
|
init: function () {
|
||||||
this.setColour(TURTLE_HUE);
|
this.setColour(TURTLE_HUE);
|
||||||
@@ -825,6 +857,19 @@ export const turtle_getscreen = {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const turtle_update = {
|
||||||
|
init: function () {
|
||||||
|
this.setColour(TURTLE_HUE);
|
||||||
|
this.appendValueInput('TUR');
|
||||||
|
this.appendDummyInput()
|
||||||
|
.appendField(Blockly.Msg.MIXLY_TURTLE_UPDATE);
|
||||||
|
this.setPreviousStatement(true);
|
||||||
|
this.setNextStatement(true);
|
||||||
|
this.setInputsInline(true);
|
||||||
|
this.setTooltip(Blockly.Msg.MIXLY_TURTEL_EVENT_ONKEY_TOOLTIP);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
export const turtle_onkey = {
|
export const turtle_onkey = {
|
||||||
init: function () {
|
init: function () {
|
||||||
this.setColour(TURTLE_HUE);
|
this.setColour(TURTLE_HUE);
|
||||||
|
|||||||
@@ -173,6 +173,21 @@ export const turtle_bgcolor = function (_, generator) {
|
|||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const turtle_title = function (_, generator) {
|
||||||
|
generator.definitions_.import_turtle = "import turtle";
|
||||||
|
const TITLE = generator.valueToCode(this, 'TITLE', generator.ORDER_ASSIGNMENT) || 'Mixly';
|
||||||
|
var code = `turtle.title(${TITLE})\n`;
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const turtle_setup = function (_, generator) {
|
||||||
|
generator.definitions_.import_turtle = "import turtle";
|
||||||
|
const WIDTH = generator.valueToCode(this, 'WIDTH', generator.ORDER_ASSIGNMENT) || '1';
|
||||||
|
const HEIGHT = generator.valueToCode(this, 'HEIGHT', generator.ORDER_ASSIGNMENT) || 'None';
|
||||||
|
var code = `turtle.setup(width=${WIDTH}, height=${HEIGHT})\n`;
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
export const turtle_tracer = function (_, generator) {
|
export const turtle_tracer = function (_, generator) {
|
||||||
generator.definitions_.import_turtle = "import turtle";
|
generator.definitions_.import_turtle = "import turtle";
|
||||||
const STEP = generator.valueToCode(this, 'STEP', generator.ORDER_ASSIGNMENT) || '1';
|
const STEP = generator.valueToCode(this, 'STEP', generator.ORDER_ASSIGNMENT) || '1';
|
||||||
@@ -358,6 +373,13 @@ export const turtle_getscreen = function (_, generator) {
|
|||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const turtle_update = function (_, generator) {
|
||||||
|
generator.definitions_.import_turtle = "import turtle";
|
||||||
|
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||||
|
var code = `${varName}.update()\n`;
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
export const turtle_onkey = function (_, generator) {
|
export const turtle_onkey = function (_, generator) {
|
||||||
generator.definitions_.import_turtle = "import turtle";
|
generator.definitions_.import_turtle = "import turtle";
|
||||||
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
var varName = generator.valueToCode(this, 'TUR', generator.ORDER_ASSIGNMENT) || '0';
|
||||||
|
|||||||
@@ -1911,13 +1911,22 @@
|
|||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
<block type="turtle_bgcolor_hex_new">
|
<block type="turtle_title">
|
||||||
<value name="VAR">
|
<value name="TITLE">
|
||||||
<block type="turtle_color_seclet">
|
|
||||||
<field name="COLOR">#ff0000</field>
|
|
||||||
</block>
|
|
||||||
<shadow type="text">
|
<shadow type="text">
|
||||||
<field name="TEXT">#FF0000</field>
|
<field name="TEXT">Mixly</field>
|
||||||
|
</shadow>
|
||||||
|
</value>
|
||||||
|
</block>
|
||||||
|
<block type="turtle_setup">
|
||||||
|
<value name="WIDTH">
|
||||||
|
<shadow type="math_number">
|
||||||
|
<field name="NUM">800</field>
|
||||||
|
</shadow>
|
||||||
|
</value>
|
||||||
|
<value name="HEIGHT">
|
||||||
|
<shadow type="math_number">
|
||||||
|
<field name="NUM">600</field>
|
||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
@@ -1934,6 +1943,16 @@
|
|||||||
<block type="logic_null"></block>
|
<block type="logic_null"></block>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
|
<block type="turtle_bgcolor_hex_new">
|
||||||
|
<value name="VAR">
|
||||||
|
<block type="turtle_color_seclet">
|
||||||
|
<field name="COLOR">#ff0000</field>
|
||||||
|
</block>
|
||||||
|
<shadow type="text">
|
||||||
|
<field name="TEXT">#FF0000</field>
|
||||||
|
</shadow>
|
||||||
|
</value>
|
||||||
|
</block>
|
||||||
<block type="turtle_pencolor_hex_new">
|
<block type="turtle_pencolor_hex_new">
|
||||||
<value name="TUR">
|
<value name="TUR">
|
||||||
<shadow type="variables_get">
|
<shadow type="variables_get">
|
||||||
@@ -2061,6 +2080,13 @@
|
|||||||
</shadow>
|
</shadow>
|
||||||
</value>
|
</value>
|
||||||
</block>
|
</block>
|
||||||
|
<block type="turtle_update">
|
||||||
|
<value name="TUR">
|
||||||
|
<shadow type="variables_get">
|
||||||
|
<field name="VAR">screen</field>
|
||||||
|
</shadow>
|
||||||
|
</value>
|
||||||
|
</block>
|
||||||
<block type="turtle_onkey">
|
<block type="turtle_onkey">
|
||||||
<value name="TUR">
|
<value name="TUR">
|
||||||
<shadow type="variables_get">
|
<shadow type="variables_get">
|
||||||
|
|||||||
@@ -4112,5 +4112,8 @@ En.MIXLY_SOUND_EFFECT_ADD_TOOLTIP='Change sound effect';
|
|||||||
En.MIXLY_TURTLE_TRACER = 'Set the drawing refresh rate';
|
En.MIXLY_TURTLE_TRACER = 'Set the drawing refresh rate';
|
||||||
En.MIXLY_TURTLE_TRACER_STEP = 'Number of steps';
|
En.MIXLY_TURTLE_TRACER_STEP = 'Number of steps';
|
||||||
En.MIXLY_TURTLE_TRACER_DELAY_MS = 'Delay (milliseconds)';
|
En.MIXLY_TURTLE_TRACER_DELAY_MS = 'Delay (milliseconds)';
|
||||||
|
En.MIXLY_TURTLE_TITLE_SET = 'Set window title to';
|
||||||
|
En.MIXLY_TURTLE_SETUP_SET = 'Set window size';
|
||||||
|
En.MIXLY_TURTLE_UPDATE = 'Refresh the canvas';
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
|||||||
@@ -4295,5 +4295,8 @@ ZhHans.MIXLY_SOUND_EFFECT_ADD_TOOLTIP='将音效增加';
|
|||||||
ZhHans.MIXLY_TURTLE_TRACER = '设置绘图刷新频率';
|
ZhHans.MIXLY_TURTLE_TRACER = '设置绘图刷新频率';
|
||||||
ZhHans.MIXLY_TURTLE_TRACER_STEP = '步数';
|
ZhHans.MIXLY_TURTLE_TRACER_STEP = '步数';
|
||||||
ZhHans.MIXLY_TURTLE_TRACER_DELAY_MS = '延迟 (毫秒)';
|
ZhHans.MIXLY_TURTLE_TRACER_DELAY_MS = '延迟 (毫秒)';
|
||||||
|
ZhHans.MIXLY_TURTLE_TITLE_SET = '设置窗口标题为';
|
||||||
|
ZhHans.MIXLY_TURTLE_SETUP_SET = '设置窗口大小';
|
||||||
|
ZhHans.MIXLY_TURTLE_UPDATE = '刷新画布';
|
||||||
|
|
||||||
})();
|
})();
|
||||||
@@ -4265,5 +4265,8 @@ ZhHant.MIXLY_SOUND_EFFECT_ADD_TOOLTIP='將音效增加';
|
|||||||
ZhHant.MIXLY_TURTLE_TRACER = '設定繪圖刷新頻率';
|
ZhHant.MIXLY_TURTLE_TRACER = '設定繪圖刷新頻率';
|
||||||
ZhHant.MIXLY_TURTLE_TRACER_STEP = '步數';
|
ZhHant.MIXLY_TURTLE_TRACER_STEP = '步數';
|
||||||
ZhHant.MIXLY_TURTLE_TRACER_DELAY_MS = '延遲 (毫秒)';
|
ZhHant.MIXLY_TURTLE_TRACER_DELAY_MS = '延遲 (毫秒)';
|
||||||
|
ZhHant.MIXLY_TURTLE_TITLE_SET = '設定視窗標題為';
|
||||||
|
ZhHant.MIXLY_TURTLE_SETUP_SET = '設定視窗大小';
|
||||||
|
ZhHant.MIXLY_TURTLE_UPDATE = '刷新畫布';
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
|||||||
Reference in New Issue
Block a user