Skip to content

Commit 87b24d4

Browse files
committed
add interupt action
1 parent 7687805 commit 87b24d4

12 files changed

Lines changed: 403 additions & 317 deletions

File tree

blockly.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
{
2-
"types": ["wabot_new", "wabot_step","wabot_backyard","wabot_turn","wabot_action","wabot_tempo"],
3-
"category": "catMenu3",
2+
"types": ["wabots_new", "wabots_basic_action","wabots_status","wabots_tempo", "wabots_stop"],
3+
"category": "catMenu0",
44
"scripts": [
55
"blockly/blocks.js",
66
"blockly/javascript.js"
77
],
88
"dependencies": [
9-
"wabot.js",
10-
"wabot-blockly.js"
9+
"wabots.js",
10+
"wabots-blockly.js"
1111
],
1212
"msg": "blockly/msg",
1313
"blocksMsg": "blockly/msg/blocks",

blockly/blocks.js

Lines changed: 77 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,29 @@
1-
Blockly.Blocks['wabot_new'] = {
1+
Blockly.Blocks['wabots_new'] = {
22
init: function() {
33
this.appendDummyInput()
4-
.appendField(Blockly.Msg.WEBDUINO_WABOT, "瓦寶機器人");
4+
.appendField(Blockly.Msg.WEBDUINO_WABOTS, "哇寶機器人");
55
this.setOutput(true);
66
this.setColour(230);
77
this.setTooltip('');
88
this.setHelpUrl('https://webduino.io');
99
}
1010
};
1111

12-
13-
Blockly.Blocks['wabot_step'] = {
12+
Blockly.Blocks['wabots_basic_action'] = {
1413
init: function() {
15-
this.appendValueInput("step")
16-
.setCheck("Number")
17-
.appendField(new Blockly.FieldVariable("wabot"), "wabot")
18-
.appendField("動作")
19-
.appendField(new Blockly.FieldDropdown(
20-
[
21-
["往前走", "walk"],
22-
["跑步", "run"]
23-
]), "step");
14+
this.appendDummyInput()
15+
.appendField(new Blockly.FieldVariable("wabots"), "wabots")
16+
.appendField("動作")
17+
.appendField(new Blockly.FieldDropdown(
18+
[
19+
["向前走","walk"],
20+
["向後走","goBack"],
21+
["向左走","moonWalkLeft"],
22+
["向右走","moonWalkRight"],
23+
["向左轉","turnLeft"],
24+
["向右轉","turnRight"],
25+
["向後轉","backyard"]
26+
]), "action")
2427
this.setPreviousStatement(true, null);
2528
this.setNextStatement(true, null);
2629
this.setColour(65);
@@ -29,19 +32,19 @@ Blockly.Blocks['wabot_step'] = {
2932
}
3033
};
3134

32-
33-
34-
Blockly.Blocks['wabot_backyard'] = {
35+
Blockly.Blocks['wabots_tempo'] = {
3536
init: function() {
36-
this.appendValueInput("step")
37-
.setCheck("Number")
38-
.appendField(new Blockly.FieldVariable("wabot"), "wabot")
37+
this.appendDummyInput()
38+
.appendField(new Blockly.FieldVariable("wabots"), "wabots")
3939
.appendField("動作")
4040
.appendField(new Blockly.FieldDropdown(
4141
[
42-
["向後轉", "backyard"],
43-
["慢慢向後轉", "backyardSlow"]
44-
]), "step");
42+
["裝可愛", "swing"],
43+
["上下跳動", "upDown"],
44+
["快樂向前", "flapping"],
45+
["玻璃舞", "crusaito"],
46+
["跑步", "run"]
47+
]), "special");
4548
this.setPreviousStatement(true, null);
4649
this.setNextStatement(true, null);
4750
this.setColour(65);
@@ -50,19 +53,21 @@ Blockly.Blocks['wabot_backyard'] = {
5053
}
5154
};
5255

53-
54-
55-
Blockly.Blocks['wabot_turn'] = {
56+
Blockly.Blocks['wabots_status'] = {
5657
init: function() {
57-
this.appendValueInput("step")
58-
.setCheck("Number")
59-
.appendField(new Blockly.FieldVariable("wabot"), "wabot")
60-
.appendField("動作")
61-
.appendField(new Blockly.FieldDropdown(
62-
[
63-
["向左轉", "turnLeft"],
64-
["向右轉", "turnRight"]
65-
]), "step");
58+
this.appendDummyInput()
59+
.appendField(new Blockly.FieldVariable("wabots"), "wabots")
60+
.appendField("動作")
61+
.appendField(new Blockly.FieldDropdown(
62+
[
63+
["立正","standard"],
64+
["踢左腳","kickLeft"],
65+
["踢右腳","kickRight"],
66+
// ["墊腳尖","goingUp"],
67+
["跌倒","noGravity"],
68+
["酒醉","drunk"],
69+
["跳舞","dance"]
70+
]), "status");
6671
this.setPreviousStatement(true, null);
6772
this.setNextStatement(true, null);
6873
this.setColour(65);
@@ -71,27 +76,22 @@ Blockly.Blocks['wabot_turn'] = {
7176
}
7277
};
7378

74-
75-
76-
Blockly.Blocks['wabot_action'] = {
79+
Blockly.Blocks['wabots_angle'] = {
7780
init: function() {
78-
this.appendValueInput("step")
79-
.setCheck("Number")
80-
.appendField(new Blockly.FieldVariable("wabot"), "wabot")
81-
.appendField("動作")
82-
.appendField(new Blockly.FieldDropdown(
83-
[
84-
["立正", "standard"],
85-
["墊腳尖", "goingUp"],
86-
["踢左腳", "kickLeft"],
87-
["踢右腳", "kickRight"],
88-
["向左月球漫步", "moonWalkLeft"],
89-
["向右月球漫步", "moonWalkRight"],
90-
["玻璃舞", "crusaito"],
91-
["裝可愛", "swing"],
92-
["上下跳動", "upDown"],
93-
["快樂向前", "flapping"]
94-
]), "step");
81+
this.appendValueInput("angle")
82+
.appendField(new Blockly.FieldVariable("wabots"), "wabots")
83+
.appendField("設定")
84+
.appendField(new Blockly.FieldDropdown(
85+
[
86+
["右足", "0"],
87+
["左足", "1"],
88+
["右腿", "2"],
89+
["左腿", "3"],
90+
["左手", "4"],
91+
["右手", "5"]
92+
]), "limb");
93+
this.appendDummyInput()
94+
.appendField("度");
9595
this.setPreviousStatement(true, null);
9696
this.setNextStatement(true, null);
9797
this.setColour(65);
@@ -100,20 +100,22 @@ Blockly.Blocks['wabot_action'] = {
100100
}
101101
};
102102

103-
104-
105-
Blockly.Blocks['wabot_tempo'] = {
103+
Blockly.Blocks['wabots_angle_tool'] = {
106104
init: function() {
107-
this.appendValueInput("step")
108-
.setCheck("Number")
109-
.appendField(new Blockly.FieldVariable("wabot"), "wabot")
110-
.appendField("動作")
105+
this.appendDummyInput()
106+
.appendField(new Blockly.FieldVariable("wabots"), "wabots")
107+
.appendField("設定")
111108
.appendField(new Blockly.FieldDropdown(
112-
[
113-
["跳舞", "dance"],
114-
["酒醉", "drunk"],
115-
["跌倒", "noGravity"],
116-
]), "step");
109+
[
110+
["右足", "0"],
111+
["左足", "1"],
112+
["右腿", "2"],
113+
["左腿", "3"],
114+
["左手", "4"],
115+
["右手", "5"]
116+
]), "limb")
117+
.appendField("為")
118+
.appendField(new Blockly.FieldAngle(90), "pos");
117119
this.setPreviousStatement(true, null);
118120
this.setNextStatement(true, null);
119121
this.setColour(65);
@@ -122,18 +124,16 @@ Blockly.Blocks['wabot_tempo'] = {
122124
}
123125
};
124126

125-
126-
127-
Blockly.Blocks['wabot_walk'] = {
127+
Blockly.Blocks['wabots_stop'] = {
128128
init: function() {
129-
this.appendValueInput("step")
130-
.setCheck("Number")
131-
.appendField(new Blockly.FieldVariable("wabot"), "wabot")
132-
.appendField(Blockly.Msg.WEBDUINO_WABOT_WALK);
133-
this.setInputsInline(false);
129+
this.appendDummyInput()
130+
.appendField(new Blockly.FieldVariable("wabots"), "wabots")
131+
.appendField("停止動作");
132+
this.setColour(65);
134133
this.setPreviousStatement(true, null);
135134
this.setNextStatement(true, null);
136-
this.setColour(65);
137-
this.setTooltip('');
135+
this.setTooltip("");
136+
this.setHelpUrl('https://webduino.io');
138137
}
139-
};
138+
};
139+

blockly/javascript.js

Lines changed: 29 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,49 @@
1-
Blockly.JavaScript['wabot_new'] = function(block) {
2-
var code = 'getwabot(board)';
1+
Blockly.JavaScript['wabots_new'] = function(block) {
2+
var code = 'getwabots(board)';
33
return [code, Blockly.JavaScript.ORDER_FUNCTION_CALL];
44
};
55

6-
7-
Blockly.JavaScript['wabot_walk'] = function(block) {
8-
var variable_ = Blockly.JavaScript.variableDB_.getName(block.getFieldValue('wabot'), Blockly.Variables.NAME_TYPE);
9-
var value_ = Blockly.JavaScript.valueToCode(block, 'step', Blockly.JavaScript.ORDER_ATOMIC);
10-
var code = variable_ + '.walk(' + value_ + ',function(){});\n';
6+
Blockly.JavaScript['wabots_basic_action'] = function(block) {
7+
var variable_ = Blockly.JavaScript.variableDB_.getName(block.getFieldValue('wabots'), Blockly.Variables.NAME_TYPE);
8+
var dropdown_action = block.getFieldValue('action');
9+
var code = variable_ + '.' + dropdown_action + '();\n';
1110
return code;
1211
};
1312

14-
Blockly.JavaScript['wabot_step'] = function(block) {
15-
var variable_ = Blockly.JavaScript.variableDB_.getName(block.getFieldValue('wabot'), Blockly.Variables.NAME_TYPE);
16-
var dropdown_step = block.getFieldValue('step');
17-
var value_step = Blockly.JavaScript.valueToCode(block, 'step', Blockly.JavaScript.ORDER_ATOMIC);
18-
var code = variable_ + '.' + dropdown_step + '(' + value_step + ',function(){});\n';
13+
Blockly.JavaScript['wabots_tempo'] = function(block) {
14+
var variable_ = Blockly.JavaScript.variableDB_.getName(block.getFieldValue('wabots'), Blockly.Variables.NAME_TYPE);
15+
var dropdown_special = block.getFieldValue('special');
16+
var code = variable_ + '.' + dropdown_special +'();\n';
1917
return code;
2018
};
2119

22-
Blockly.JavaScript['wabot_backyard'] = function(block) {
23-
var variable_ = Blockly.JavaScript.variableDB_.getName(block.getFieldValue('wabot'), Blockly.Variables.NAME_TYPE);
24-
var dropdown_step = block.getFieldValue('step');
25-
var value_step = Blockly.JavaScript.valueToCode(block, 'step', Blockly.JavaScript.ORDER_ATOMIC);
26-
var code = variable_ + '.' + dropdown_step + '(' + value_step + ',function(){});\n';
20+
Blockly.JavaScript['wabots_status'] = function(block) {
21+
var variable_ = Blockly.JavaScript.variableDB_.getName(block.getFieldValue('wabots'), Blockly.Variables.NAME_TYPE);
22+
var dropdown_step = block.getFieldValue('status');
23+
// var value_step = Blockly.JavaScript.valueToCode(block, 'step', Blockly.JavaScript.ORDER_ATOMIC);
24+
var code = variable_ + '.' + dropdown_step + '(' + 0 + ',function(){});\n';
2725
return code;
2826
};
2927

30-
Blockly.JavaScript['wabot_turn'] = function(block) {
31-
var variable_ = Blockly.JavaScript.variableDB_.getName(block.getFieldValue('wabot'), Blockly.Variables.NAME_TYPE);
32-
var dropdown_step = block.getFieldValue('step');
33-
var value_step = Blockly.JavaScript.valueToCode(block, 'step', Blockly.JavaScript.ORDER_ATOMIC);
34-
var code = variable_ + '.' + dropdown_step + '(' + value_step + ',function(){});\n';
28+
Blockly.JavaScript['wabots_angle'] = function(block) {
29+
var variable_ = Blockly.JavaScript.variableDB_.getName(block.getFieldValue('wabots'), Blockly.Variables.NAME_TYPE);
30+
var dropdown_limb = block.getFieldValue('limb');
31+
var value_angle = Blockly.JavaScript.valueToCode(block, 'angle', Blockly.JavaScript.ORDER_ATOMIC);
32+
var code = variable_ + '.servo' + '(' + dropdown_limb + ','+ value_angle + ',function(){});\n';
3533
return code;
3634
};
3735

38-
Blockly.JavaScript['wabot_action'] = function(block) {
39-
var variable_ = Blockly.JavaScript.variableDB_.getName(block.getFieldValue('wabot'), Blockly.Variables.NAME_TYPE);
40-
var dropdown_step = block.getFieldValue('step');
41-
var value_step = Blockly.JavaScript.valueToCode(block, 'step', Blockly.JavaScript.ORDER_ATOMIC);
42-
var code = variable_ + '.' + dropdown_step + '(' + value_step + ',function(){});\n';
36+
Blockly.JavaScript['wabots_angle_tool'] = function(block) {
37+
var variable_ = Blockly.JavaScript.variableDB_.getName(block.getFieldValue('wabots'), Blockly.Variables.NAME_TYPE);
38+
var dropdown_limb = block.getFieldValue('limb');
39+
var angle_pos = block.getFieldValue('pos');
40+
var code = variable_ + '.servo' + '(' + dropdown_limb + ','+ angle_pos + ',function(){});\n';
4341
return code;
4442
};
4543

46-
Blockly.JavaScript['wabot_tempo'] = function(block) {
47-
var variable_ = Blockly.JavaScript.variableDB_.getName(block.getFieldValue('wabot'), Blockly.Variables.NAME_TYPE);
48-
var dropdown_step = block.getFieldValue('step');
49-
var value_step = Blockly.JavaScript.valueToCode(block, 'step', Blockly.JavaScript.ORDER_ATOMIC);
50-
var code = variable_ + '.' + dropdown_step + '(' + value_step + ',function(){});\n';
44+
Blockly.JavaScript['wabots_stop'] = function(block) {
45+
var variable_ = Blockly.JavaScript.variableDB_.getName(block.getFieldValue('wabots'), Blockly.Variables.NAME_TYPE);
46+
// var value_step = Blockly.JavaScript.valueToCode(block, 'step', Blockly.JavaScript.ORDER_ATOMIC);
47+
var code = variable_ + '.stop();\n';
5148
return code;
5249
};

blockly/msg/blocks/zh-hant.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
// waBot
2-
Blockly.Msg.WEBDUINO_WABOT = "瓦寶機器人";
3-
Blockly.Msg.WEBDUINO_WABOT_WALK = "往前走 ";
2+
Blockly.Msg.WEBDUINO_WABOTS = "哇寶機器人";
3+
Blockly.Msg.WEBDUINO_WABOTS_WALK = "往前走 ";

blockly/msg/zh-hant.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
MSG.catwabot = "瓦寶機器人";
1+
MSG.catwabots = "哇寶機器人s";

blockly/toolbox.xml

Lines changed: 13 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,29 @@
1-
<category id="catwabot" tags="fly,mark1,smart">
1+
<category id="catwabots" tags="fly,mark1,smart">
22
<block type="variables_set">
3-
<field name="VAR">wabot</field>
3+
<field name="VAR">wabots</field>
44
<value name="VALUE">
5-
<block type="wabot_new">
5+
<block type="wabots_new">
66
</block>
77
</value>
88
</block>
9-
<block type="wabot_step">
10-
<value name="step">
11-
<block type="math_number">
12-
<field name="NUM">1</field>
13-
</block>
14-
</value>
9+
<block type="wabots_basic_action">
1510
</block>
16-
<block type="wabot_backyard">
17-
<value name="step">
18-
<block type="math_number">
19-
<field name="NUM">4</field>
20-
</block>
21-
</value>
11+
<block type="wabots_tempo">
2212
</block>
23-
<block type="wabot_turn">
13+
<block type="wabots_status">
2414
<value name="step">
25-
<block type="math_number">
26-
<field name="NUM">3</field>
27-
</block>
2815
</value>
2916
</block>
30-
<block type="wabot_action">
31-
<value name="step">
17+
<block type="wabots_angle">
18+
<value name="angle">
3219
<block type="math_number">
33-
<field name="NUM">1</field>
20+
<field name="NUM">90</field>
3421
</block>
3522
</value>
3623
</block>
37-
<block type="wabot_tempo">
38-
<value name="step">
39-
<block type="math_number">
40-
<field name="NUM">1</field>
41-
</block>
42-
</value>
24+
<block type="wabots_angle_tool">
25+
</block>
26+
<block type="wabots_stop">
4327
</block>
28+
4429
</category>

0 commit comments

Comments
 (0)