Skip to content

Commit 7dc9b43

Browse files
committed
Merge branch 'tutorials' into gh-pages
2 parents 42bf310 + ef6563d commit 7dc9b43

7 files changed

Lines changed: 209 additions & 2 deletions

File tree

blocks/msg/en.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,3 +304,17 @@ Blockly.Msg.WEBDUINO_BUZZER_SHOW = "Show";
304304
Blockly.Msg.WEBDUINO_BUZZER_SHOW_NOTESANDTEMPOS = "'s notes and tempos";
305305
Blockly.Msg.WEBDUINO_BUZZER_CLICK = "Click";
306306
Blockly.Msg.WEBDUINO_BUZZER_DO = "do:";
307+
308+
Blockly.Msg.WEBDUINO_TESTCAR = "Car";
309+
Blockly.Msg.WEBDUINO_TESTCAR_PINRF = "Pin: Right(f)";
310+
Blockly.Msg.WEBDUINO_TESTCAR_PINRB = "Right(b)";
311+
Blockly.Msg.WEBDUINO_TESTCAR_PINLF = "Left(f)";
312+
Blockly.Msg.WEBDUINO_TESTCAR_PINLB = "Left(b)";
313+
Blockly.Msg.WEBDUINO_TESTCAR_ACTION = " Action:";
314+
Blockly.Msg.WEBDUINO_TESTCAR_GOFRONT = "go front";
315+
Blockly.Msg.WEBDUINO_TESTCAR_GOBACK = "go back";
316+
Blockly.Msg.WEBDUINO_TESTCAR_GOLEFT = "go left";
317+
Blockly.Msg.WEBDUINO_TESTCAR_GORIGHT = "go right";
318+
Blockly.Msg.WEBDUINO_TESTCAR_TURNRIGHT = "turn right";
319+
Blockly.Msg.WEBDUINO_TESTCAR_TURNLEFT = "turn left";
320+
Blockly.Msg.WEBDUINO_TESTCAR_STOP = "stop";

blocks/msg/zh-hant.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -302,3 +302,18 @@ Blockly.Msg.WEBDUINO_BUZZER_SHOW = "顯示";
302302
Blockly.Msg.WEBDUINO_BUZZER_SHOW_NOTESANDTEMPOS = "的音符和節奏";
303303
Blockly.Msg.WEBDUINO_BUZZER_CLICK = "點選";
304304
Blockly.Msg.WEBDUINO_BUZZER_DO = "執行:";
305+
306+
Blockly.Msg.WEBDUINO_TESTCAR = "自走車";
307+
Blockly.Msg.WEBDUINO_TESTCAR_PINRF = "腳位設定:右前";
308+
Blockly.Msg.WEBDUINO_TESTCAR_PINRB = "右後";
309+
Blockly.Msg.WEBDUINO_TESTCAR_PINLF = "左前";
310+
Blockly.Msg.WEBDUINO_TESTCAR_PINLB = "左後";
311+
Blockly.Msg.WEBDUINO_TESTCAR = "自走車";
312+
Blockly.Msg.WEBDUINO_TESTCAR_ACTION = " 動作";
313+
Blockly.Msg.WEBDUINO_TESTCAR_GOFRONT = "前進";
314+
Blockly.Msg.WEBDUINO_TESTCAR_GOBACK = "後退";
315+
Blockly.Msg.WEBDUINO_TESTCAR_GOLEFT = "左前";
316+
Blockly.Msg.WEBDUINO_TESTCAR_GORIGHT = "右前";
317+
Blockly.Msg.WEBDUINO_TESTCAR_TURNRIGHT = "原地右轉";
318+
Blockly.Msg.WEBDUINO_TESTCAR_TURNLEFT = "原地左轉";
319+
Blockly.Msg.WEBDUINO_TESTCAR_STOP = "停止";

blocks/webduino.js

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1163,3 +1163,100 @@ Blockly.Blocks['pin_state'] = {
11631163
this.setHelpUrl('http://www.example.com/');
11641164
}
11651165
};
1166+
1167+
//https://blockly-demo.appspot.com/static/demos/blockfactory/index.html#85nm6w
1168+
Blockly.Blocks[Blockly.Msg.WEBDUINO_TESTCAR_NEW,'car_test_new'] = {
1169+
init: function () {
1170+
this.appendValueInput("var_")
1171+
.appendField(Blockly.Msg.WEBDUINO_TESTCAR,"自走車");
1172+
this.appendDummyInput()
1173+
.appendField(Blockly.Msg.WEBDUINO_TESTCAR_PINRF,"腳位設定:右前")
1174+
.appendField(new Blockly.FieldDropdown([
1175+
["2", "2"],
1176+
["3", "3"],
1177+
["4", "4"],
1178+
["5", "5"],
1179+
["6", "6"],
1180+
["7", "7"],
1181+
["8", "8"],
1182+
["9", "9"],
1183+
["10", "10"],
1184+
["11", "11"],
1185+
["12", "12"],
1186+
["13", "13"]
1187+
]), "rf_")
1188+
.appendField(Blockly.Msg.WEBDUINO_TESTCAR_PINRB,"右後")
1189+
.appendField(new Blockly.FieldDropdown([
1190+
["2", "2"],
1191+
["3", "3"],
1192+
["4", "4"],
1193+
["5", "5"],
1194+
["6", "6"],
1195+
["7", "7"],
1196+
["8", "8"],
1197+
["9", "9"],
1198+
["10", "10"],
1199+
["11", "11"],
1200+
["12", "12"],
1201+
["13", "13"]
1202+
]), "rb_")
1203+
.appendField(Blockly.Msg.WEBDUINO_TESTCAR_PINLF,"左前")
1204+
.appendField(new Blockly.FieldDropdown([
1205+
["2", "2"],
1206+
["3", "3"],
1207+
["4", "4"],
1208+
["5", "5"],
1209+
["6", "6"],
1210+
["7", "7"],
1211+
["8", "8"],
1212+
["9", "9"],
1213+
["10", "10"],
1214+
["11", "11"],
1215+
["12", "12"],
1216+
["13", "13"]
1217+
]), "lf_")
1218+
.appendField(Blockly.Msg.WEBDUINO_TESTCAR_PINLB,"左後")
1219+
.appendField(new Blockly.FieldDropdown([
1220+
["2", "2"],
1221+
["3", "3"],
1222+
["4", "4"],
1223+
["5", "5"],
1224+
["6", "6"],
1225+
["7", "7"],
1226+
["8", "8"],
1227+
["9", "9"],
1228+
["10", "10"],
1229+
["11", "11"],
1230+
["12", "12"],
1231+
["13", "13"]
1232+
]), "lb_");
1233+
this.setPreviousStatement(true);
1234+
this.setNextStatement(true);
1235+
this.setTooltip('');
1236+
this.setColour(200);
1237+
this.setHelpUrl('http://www.example.com/');
1238+
}
1239+
};
1240+
1241+
Blockly.Blocks['car_test_move'] = {
1242+
init: function () {
1243+
this.appendDummyInput()
1244+
.appendField(Blockly.Msg.WEBDUINO_TESTCAR,"自走車")
1245+
.appendField(new Blockly.FieldVariable("car"), "var_")
1246+
.appendField(Blockly.Msg.WEBDUINO_TESTCAR_ACTION," 動作")
1247+
.appendField(new Blockly.FieldDropdown([
1248+
[Blockly.Msg.WEBDUINO_TESTCAR_GOFRONT, "goFront_"],
1249+
[Blockly.Msg.WEBDUINO_TESTCAR_GOBACK, "goBack_"],
1250+
[Blockly.Msg.WEBDUINO_TESTCAR_GOLEFT, "goLeft_"],
1251+
[Blockly.Msg.WEBDUINO_TESTCAR_GORIGHT, "goRight_"],
1252+
[Blockly.Msg.WEBDUINO_TESTCAR_TURNRIGHT, "turnRight_"],
1253+
[Blockly.Msg.WEBDUINO_TESTCAR_TURNLEFT, "turnLeft_"],
1254+
[Blockly.Msg.WEBDUINO_TESTCAR_STOP, "stop_"]
1255+
]), "move_");
1256+
this.setColour(200);
1257+
this.setPreviousStatement(true);
1258+
this.setNextStatement(true);
1259+
this.setTooltip('');
1260+
this.setHelpUrl('http://www.example.com/');
1261+
}
1262+
};

generators/webduino.js

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -587,3 +587,66 @@ Blockly.JavaScript['pin_state'] = function (block) {
587587
var code = variable_pin_ + '.pinNum_.state';
588588
return [code, Blockly.JavaScript.ORDER_ATOMIC];
589589
};
590+
591+
Blockly.JavaScript['car_test_new'] = function (block) {
592+
var value_var_ = Blockly.JavaScript.valueToCode(block, 'var_', Blockly.JavaScript.ORDER_ATOMIC);
593+
var dropdown_rf_ = block.getFieldValue('rf_');
594+
var dropdown_rb_ = block.getFieldValue('rb_');
595+
var dropdown_lf_ = block.getFieldValue('lf_');
596+
var dropdown_lb_ = block.getFieldValue('lb_');
597+
var code = value_var_ + ' = {};\n\n' +
598+
value_var_ + '.rightFront_ = getLed(board, ' + dropdown_rf_ + ');\n' +
599+
value_var_ + '.rightBack_ = getLed(board, ' + dropdown_rb_ + ');\n' +
600+
value_var_ + '.leftFront_ = getLed(board, ' + dropdown_lf_ + ');\n' +
601+
value_var_ + '.leftBack_ = getLed(board, ' + dropdown_lb_ + ');\n\n' +
602+
value_var_ + '.goFront_ = function(){\n' +
603+
' ' + value_var_ + '.rightFront_.on();\n' +
604+
' ' + value_var_ + '.rightBack_.off();\n' +
605+
' ' + value_var_ + '.leftFront_.on();\n' +
606+
' ' + value_var_ + '.leftBack_.off();\n' +
607+
'};\n' +
608+
value_var_ + '.goBack_ = function(){\n' +
609+
' ' + value_var_ + '.rightFront_.off();\n' +
610+
' ' + value_var_ + '.rightBack_.on();\n' +
611+
' ' + value_var_ + '.leftFront_.off();\n' +
612+
' ' + value_var_ + '.leftBack_.on();\n' +
613+
'};\n' +
614+
value_var_ + '.goRight_ = function(){\n' +
615+
' ' + value_var_ + '.rightFront_.off();\n' +
616+
' ' + value_var_ + '.rightBack_.off();\n' +
617+
' ' + value_var_ + '.leftFront_.on();\n' +
618+
' ' + value_var_ + '.leftBack_.off();\n' +
619+
'};\n' +
620+
value_var_ + '.goLeft_ = function(){\n' +
621+
' ' + value_var_ + '.rightFront_.on();\n' +
622+
' ' + value_var_ + '.rightBack_.off();\n' +
623+
' ' + value_var_ + '.leftFront_.off();\n' +
624+
' ' + value_var_ + '.leftBack_.off();\n' +
625+
'};\n' +
626+
value_var_ + '.turnRight_ = function(){\n' +
627+
' ' + value_var_ + '.rightFront_.off();\n' +
628+
' ' + value_var_ + '.rightBack_.on();\n' +
629+
' ' + value_var_ + '.leftFront_.on();\n' +
630+
' ' + value_var_ + '.leftBack_.off();\n' +
631+
'};\n' +
632+
value_var_ + '.turnLeft_ = function(){\n' +
633+
' ' + value_var_ + '.rightFront_.on();\n' +
634+
' ' + value_var_ + '.rightBack_.off();\n' +
635+
' ' + value_var_ + '.leftFront_.off();\n' +
636+
' ' + value_var_ + '.leftBack_.on();\n' +
637+
'};\n' +
638+
value_var_ + '.stop_ = function(){\n' +
639+
' ' + value_var_ + '.rightFront_.off();\n' +
640+
' ' + value_var_ + '.rightBack_.off();\n' +
641+
' ' + value_var_ + '.leftFront_.off();\n' +
642+
' ' + value_var_ + '.leftBack_.off();\n' +
643+
'};\n\n';
644+
return code;
645+
};
646+
647+
Blockly.JavaScript['car_test_move'] = function(block) {
648+
var variable_var_ = Blockly.JavaScript.variableDB_.getName(block.getFieldValue('var_'), Blockly.Variables.NAME_TYPE);
649+
var dropdown_move_ = block.getFieldValue('move_');
650+
var code = variable_var_+'.'+dropdown_move_+'();\n';
651+
return code;
652+
};

msg/en.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,5 +44,6 @@ var MSG = {
4444
catTutorials: "Blockly",
4545
linkToBin: "Let's Coding",
4646
catDatabase: "Data base - Firebase",
47-
update: "update 2015.8.11"
47+
update: "update 2015.8.11",
48+
catCarTest: "Car (demo)"
4849
};

msg/zh-hant.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,5 +44,8 @@ var MSG = {
4444
catTutorials: "教學積木",
4545
linkToBin: "程式編輯",
4646
catDatabase: "資料庫 - Firebase",
47-
update: "update 2015.8.11"
47+
update: "update 2015.8.11",
48+
catCarTest: "自走車(demo)",
49+
catBasic:"基本積木",
50+
catWebduino:"Webduino 積木"
4851
};

views/index.handlebars

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -472,6 +472,20 @@
472472
<field name="speed_">2</field>
473473
</block>
474474
</category>
475+
<category id="catCarTest">
476+
<block type="car_test_new">
477+
<value name="var_">
478+
<block type="variables_get">
479+
<field name="VAR">car</field>
480+
</block>
481+
</value>
482+
<field name="rf_">8</field>
483+
<field name="rb_">9</field>
484+
<field name="lf_">6</field>
485+
<field name="lb_">7</field>
486+
</block>
487+
<block type="car_test_move"></block>
488+
</category>
475489
<sep></sep>
476490
<category id="catButton">
477491
<block type="variables_set">

0 commit comments

Comments
 (0)