catch.jp-wiki
¥×¥í¥°¥é¥ß¥ó¥°
±Ñ¸ì³Ø½¬
ÍúÎò
¸¡º÷
Dropdown
°ìÍ÷
Blockly/Tutorial
¤ò¥Æ¥ó¥×¥ì¡¼¥È¤Ë¤·¤ÆºîÀ®
³«»Ï¹Ô:
[[Programing]]¡ä[[Blockly>Programing/Blockly2014]]¡äTutor...
#title(Blockly¤Î¥ª¥ê¥¸¥Ê¥ë¥Ö¥í¥Ã¥¯¤òºî¤Ã¤Æ¤ß¤¿¥á¥â)
''2017-07-02 [[Blockly1.0¡§¥«¥¹¥¿¥à¥Ö¥í¥Ã¥¯¤Îºî¤êÊý>Block...
2014-10-18 ¥µ¥¤¥È¥ê¥Ë¥å¡¼¥¢¥ë¤Ç¡¢¸µ¤Î¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ïºï½ü...
-[[Tutorial_CreateYourFirstBlock:https://code.google.com/...
-----
ºÇ½é¤Î¥ª¥ê¥¸¥Ê¥ë¥Ö¥í¥Ã¥¯¤òºî¤Ã¤Æ¡¢Äɲ䷤ơ¢¥Æ¥¹¥È¤·¤Æ¤ß...
¤³¤Î¥Ú¡¼¥¸¤Ï¡¢Blokly¸ø¼°¥µ¥¤¥È¤Î³«È¯¥Á¥å¡¼¥È¥ê¥¢¥ë¤ò¤Ê¤¾...
¸ø¼°¥µ¥¤¥È¤Î³«È¯¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ç¤Ï¡¢Âêºà¤È¤·¤Æ[[¤ª³¨¤«¤...
¤³¤Î¥Ö¥í¥Ã¥¯¡Ömove to¡×¤Ï¡¢¤ª³¨¤«¤¥«¥á¤Î¥Ä¡¼¥ë¥Ü¥Ã¥¯¥¹¤Ë...
#ref(tutporial_100.png)
#contents
*½àÈ÷¤¹¤ë [#v88a6ef4]
¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ë¤Ï¡¢¼¡¤Î¤â¤Î¤ò¤½¤í¤¨¤ë¤È½ñ¤¤¤Æ¤¢¤ë¡£
+Web¥Ö¥é¥¦¥¶
+¥·¥ó¥×¥ë¤Ê¥Æ¥¥¹¥È¥¨¥Ç¥£¥¿
+Subversion
+Blockly¤Î¥½¡¼¥¹¥³¡¼¥É
+(java)
ºÇ½é¤Î2¤Ä¤Ï¡¢¼«Ê¬¤Î¹¥¤ß¤Î¤â¤Î¤ò»È¤¨¤Ð¤¤¤¤¤Ç¤·¤ç¤¦¡£
ºÇ¸å¤Î2¤Ä¤Ï¡¢¼¡¤Î¥¹¥Æ¥Ã¥×¤ÇÆþ¼ê¤¹¤ë¤±¤É¡¢Subversion¤Ï¤Ê¤¯...
¡öÊ䡧
¡ö¤µ¤é¤Ë¡¢5ÈÖÌܤΥġ¼¥ë¤È¤·¤Æ¡¢Java¤¬É¬Íס£
¡ö¥³¥Þ¥ó¥É¥×¥í¥ó¥×¥È¤Ç¡Ö> java -version¡×¤È¤ä¤ë¤È¡¢Æ³Æþ...
¡öƳÆþ¤µ¤ì¤Æ¤Ê¤¤¾ì¹ç¤Ï¡¢http://www.oracle.com/technetwor...
¡öJava¤¬¤¢¤ë¤Î¤Ë¥³¥Þ¥ó¥É¥×¥í¥ó¥×¥È¤«¤é»È¤¨¤Ê¤¤¾ì¹ç¤Ï¡¢´Ä...
**Subversion¤ÈBlockly¥½¡¼¥¹¥³¡¼¥É¤Î¥À¥¦¥ó¥í¡¼¥É [#ee4b95bf]
¤È¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ë¤Ï½ñ¤¤¤Æ¤¢¤ë¤±¤ì¤É¡¢Github¤Î¡ÖDownload ...
https://github.com/google/blockly/archive/master.zip
Github¤ò»È¤Ã¤Æ¤¤¤ë¤Ê¤é¡¢¤³¤Á¤é¡£
git clone https://github.com/google/blockly
¤³¤ì¤Ê¤é¡¢Subversion¤ÏÉÔÍס£
¥Õ¥¡¥¤¥ë¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¡¢²òÅष¤¿¤é¡¢¡Ö¥µ¥ó¥×¥ë¥¢¥×¥ê...
**¥µ¥ó¥×¥ë¥¢¥×¥ê¤ÇÆ°ºî¥Á¥§¥Ã¥¯ [#m00ad4e7]
¥µ¥ó¥×¥ë¥¢¥×¥ê¤Î¡Ö¤ª³¨¤«¤¥«¥á¡×¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï
+(¥½¡¼¥¹¥³¡¼¥É)\apps\turtle\index.html¤ò¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤·...
**¤³¤ì¤«¤é¤ä¤ë¤³¤È [#t22212dd]
¤³¤Î¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ç¤Ï¡¢\apps\turtle¥Õ¥©¥ë¥À¤Ë¤¢¤ë¡Öturtl...
¤³¤³¤Ç¤Ï¡¢¡Ömove_to¡×¥Ö¥í¥Ã¥¯¤òºî¤Ã¤Æ¤¤¤Þ¤¹¡£¡Ömove_to¡×...
*Step1¡§¥Ö¥í¥Ã¥¯¤òÀ߷פ¹¤ë [#raf2cf73]
¤Ç¡¢¥Ö¥í¥Ã¥¯¤òºî¤ê»Ï¤á¤Æ¤ß¤¿¡£
**¥Ö¥í¥Ã¥¯¹©¾ì¤Çºî¤ë [#j4060590]
¿·¤·¤¤¥Ö¥í¥Ã¥¯¤òÀ߷פ¹¤ë¤Ë¤Ï¡¢¥Ç¥â¥¢¥×¥ê¤Ë¤¢¤ë[[¥Ö¥í¥Ã¥¯...
¥Ö¥í¥Ã¥¯¹©¾ì¤ò»È¤¦¤È¡¢¿·¤·¤¤¥Ö¥í¥Ã¥¯¤Î¸«¤¿Ìܤȵ¡Ç½¤ò´Êñ...
¤Ç¤Ï¡¢¥Ö¥í¥Ã¥¯¹©¾ì¤Ç¡¢²¼µ¤Î¤è¤¦¤Ë¥Ö¥í¥Ã¥¯¤òÁȤßΩ¤Æ¤ë
#ref(BlockFactory_MoveTo_zps80888682.png)
**¥×¥ì¥Ó¥å¡¼ [#o9867b06]
¥Ö¥í¥Ã¥¯¤òÁȤßΩ¤Æ¤¿¤é¡¢preview(¥×¥ì¥Ó¥å¡¼)¤ò¸«¤Æ¤ß¤ë¡£¼¡...
#ref(BlockFactory_MoveTo_Preview_zps16065a5d.png)
#Ê䡧²¼µ¤ÎURL¤Ç¶¦Í
https://blockly-demo.appspot.com/static/apps/blockfacto...
**¥é¥ó¥²¡¼¥¸ ¥³¡¼¥É [#d6f8701b]
Language Code¡Ê¥é¥ó¥²¡¼¥¸ ¥³¡¼¥É¡Ë¤ò¸«¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ë¥³...
Blockly.Blocks['move_to'] = {
init: function() {
this.setHelpUrl('http://www.example.com/');
this.setColour(160);
this.appendDummyInput()
.appendField(" move to");
this.appendValueInput("XPOS")
.setCheck("Number")
.appendField("x");
this.appendValueInput("YPOS")
.setCheck("Number")
.appendField("y");
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip('');
}
};
**JavaScript ¥¹¥¿¥Ö¥³¡¼¥É [#bb348633]
stub code¡Ê¥¹¥¿¥Ö ¥³¡¼¥É¡Ë¤ò¸«¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ë¥³¡¼¥É¤¬É½...
Blockly.JavaScript['move_to'] = function(block) {
var value_xpos = Blockly.JavaScript.valueToCode(block, ...
var value_ypos = Blockly.JavaScript.valueToCode(block, ...
// TODO: Assemble JavaScript into code variable.
var code = '...';
return code;
};
¥Ö¥í¥Ã¥¯¥Ç¥¶¥¤¥ó¤Î¾ÜºÙ¤Ï¡¢https://code.google.com/p/block...
¥³¡¼¥ÉÀ¸À®¤Î¾ÜºÙ¤Ï¡¢ https://code.google.com/p/blockly/wi...
*Step2¡§blocks.js¥Õ¥¡¥¤¥ë¤òÊÔ½¸¤¹¤ë [#ode8945a]
¥Æ¥¥¹¥È¥¨¥Ç¥£¥¿¤Çblocks.js¥Õ¥¡¥¤¥ë¤ò³«¤¯¡£
¤Ç¡¢¼¡¤Î¥³¡¼¥É¤Îľ¸å¤Ë¡¢Àè¤Û¤É¤Î2¤Ä¤Î¥³¡¼¥É¤òŽ¤êÉÕ¤±¤Þ¤¹¡£
Blockly.JavaScript['draw_move'] = function(block) {
// Generate JavaScript for moving forward or backwards.
var value = Blockly.JavaScript.valueToCode(block, 'VALU...
Blockly.JavaScript.ORDER_NONE) || '0';
return 'Turtle.' + block.getFieldValue('DIR') +
'(' + value + ', \'block_id_' + block.id + '\');\n';
};
//¤³¤³¤Ë2¤Ä¤Î¥³¡¼¥É¤òŽ¤êÉÕ¤±¤ë
¤½¤ì¤«¤é¡¢°ìÉô¤ò¤³¤ó¤Ê¤Õ¤¦¤Ë½¤Àµ¤·¤Þ¤¹¡£
Blockly.Blocks['draw_moveto'] = {
// move turtle to absolute x,y location
// for reference 0,0 is top/let and 200,200 is centre
init: function() {
this.setHelpUrl('');
this.setColour(160);
this.appendDummyInput()
.appendField(BlocklyApps.getMsg('Turtle_moveTo'));
this.appendValueInput("XPOS")
.setCheck("Number")
.appendField("x");
this.appendValueInput("YPOS")
.setCheck("Number")
.appendField("y");
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(BlocklyApps.getMsg('Turtle_moveToTool...
}
};
Blockly.JavaScript['draw_moveto'] = function(block) {
// Generate JavaScript for moving to absolute position
var xpos = Blockly.JavaScript.valueToCode(block, 'XPOS'...
var ypos = Blockly.JavaScript.valueToCode(block, 'YPOS'...
return 'Turtle.moveTo(' + xpos + ',' + ypos + ', \'bloc...
};
¤½¤·¤¿¤é¡¢blocks.js¥Õ¥¡¥¤¥ë¤òÊݸ¤·¤Þ¤¹¡£
* Ê䡧
* ¤±¤Ã¤³¤¦Êѹ¹ÅÀ¤¬Â¿¤¯¤Æ¡¢´Ö°ã¤¨¤¿¡£
* ¥Õ¥¡¥¤¥ë¤Î½¤ÀµÅÀ¤Ï¡¢¤³¤ó¤Ê´¶¤¸¡£
#ref(tutporial_150.png)
*Step3¡§turtle.js¥Õ¥¡¥¤¥ë¤òÊÔ½¸¤¹¤ë [#yc4f1dd3]
turtle.js¥Õ¥¡¥¤¥ë¤ò¥¨¥Ç¥£¥¿¤Ç³«¤¯
¡Ö// Turtle API¡×¥³¥á¥ó¥È¤Î²¼¤Ë¤¢¤ë¡¢ Turtle APIÉôʬ¤ò¸«...
Turtle.moveBackward{...}¥Ö¥í¥Ã¥¯¤Î¸å¤í¤Ë¡¢¼¡¤ÎAPI¥³¡¼¥É¤ò...
Turtle.moveTo = function(xpos, ypos, id) {
BlocklyApps.log.push(['MT', xpos, ypos, id]);
};
¤â¤¦¤Ò¤È¤Ä¡£Turtle.step = function(command, values) {...}...
case 'MT': // Move To
Turtle.x=values[0];
Turtle.y=values[1];
break;
¤½¤·¤¿¤é¡¢turtle.js¥Õ¥¡¥¤¥ë¤òÊݸ¤¹¤ë¡£
*Step4¡§template.soy¥Õ¥¡¥¤¥ë¤òÊÔ½¸¤¹¤ë [#d1a286d0]
template.soy¤ò¥¨¥Ç¥£¥¿¤Ç³«¤¯¡£
{template .messages}¥Ö¥í¥Ã¥¯¤ÎÃæ¤Ë¶õ¹Ô¤ò¤¢¤±¤Æ¡¢¼¡¤Î¥³¡¼...
¥ª¥¹¥¹¥á¤Î°ÌÃ֤ϡ¢ <span id="Turtle_moveBackward"> ... </...
<span id="Turtle_moveToTooltip">{msg meaning="Turtle.m...
<span id="Turtle_moveTo">{msg meaning="Turtle.moveTo"...
¤½¤ì¤«¤é¡¢¿·¤·¤¤¥Ö¥í¥Ã¥¯¤¬¥Ä¡¼¥ë¥Ü¥Ã¥¯¥¹¤Ëɽ¼¨¤µ¤ì¤ë¤è¤¦...
<block type="draw_moveto">
<value name="XPOS">
<block type="math_number">
<field name="NUM">200</fi...
</block>
</value>
<value name="YPOS">
<block type="math_number">
<field name="NUM">200</fi...
</block>
</value>
</block>
¤½¤·¤¿¤é¡¢template.soy¥Õ¥¡¥¤¥ë¤òÊݸ¤·¤Þ¤¹¡£
*Step5¡§Êѹ¹¤·¤¿¥Õ¥¡¥¤¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë [#t4a5135b]
¤³¤³¤Ç¡¢Windows¤Ê¤é¥³¥Þ¥ó¥É¥×¥í¥ó¥×¥È¤ò³«¤¤¤Æ¡¢¤ª³¨¤«¤¥«...
> cd <myfolder>/blockly/apps/turtle
¤½¤ì¤«¤éJava¤Ç¥³¥ó¥Ñ¥¤¥ë¡£Java¤Ë¤Ä¤¤¤Æ¤Ï¡¢ËÁƬ¤ÎÊä¤⻲...
> java -jar ../_soy/SoyToJsSrcCompiler.jar --outputPathF...
¡öÊ䡧
ËöÈø¤Î¡Ö../common.soy,template.soy¡×¤Ï¡¢¥À¥Ö¥ë¥³¡¼¥Æ¡¼¥·...
*Step6¡§¿·¤·¤¤¥Ö¥í¥Ã¥¯¤ò¥Æ¥¹¥È¤¹¤ë [#of6b2cf0]
ºÆÅÙ¡¢index.html¤ò³«¤¯¤È¡¢¡Ömove_to¡×¥Ö¥í¥Ã¥¯¤¬Äɲ䵤ì¤Æ...
#ref(tutporial_300.png)
¥Æ¥¹¥È¤Î¤¿¤á¤Ë¡¢¤³¤ó¤Ê¥³¡¼¥É¤òÁȤó¤Ç¤ß¤¿¡£
#ref(tutporial_200.png)
*»²¹Í [#db8c0669]
¸ø¼°¥µ¥¤¥È
-[[Tutorial_CreateYourFirstBlock:https://code.google.com/...
-[[DefiningBlock:https://code.google.com/p/blockly/wiki/D...
-[[GeneratingCode:https://code.google.com/p/blockly/wiki/...
½ªÎ»¹Ô:
[[Programing]]¡ä[[Blockly>Programing/Blockly2014]]¡äTutor...
#title(Blockly¤Î¥ª¥ê¥¸¥Ê¥ë¥Ö¥í¥Ã¥¯¤òºî¤Ã¤Æ¤ß¤¿¥á¥â)
''2017-07-02 [[Blockly1.0¡§¥«¥¹¥¿¥à¥Ö¥í¥Ã¥¯¤Îºî¤êÊý>Block...
2014-10-18 ¥µ¥¤¥È¥ê¥Ë¥å¡¼¥¢¥ë¤Ç¡¢¸µ¤Î¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ïºï½ü...
-[[Tutorial_CreateYourFirstBlock:https://code.google.com/...
-----
ºÇ½é¤Î¥ª¥ê¥¸¥Ê¥ë¥Ö¥í¥Ã¥¯¤òºî¤Ã¤Æ¡¢Äɲ䷤ơ¢¥Æ¥¹¥È¤·¤Æ¤ß...
¤³¤Î¥Ú¡¼¥¸¤Ï¡¢Blokly¸ø¼°¥µ¥¤¥È¤Î³«È¯¥Á¥å¡¼¥È¥ê¥¢¥ë¤ò¤Ê¤¾...
¸ø¼°¥µ¥¤¥È¤Î³«È¯¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ç¤Ï¡¢Âêºà¤È¤·¤Æ[[¤ª³¨¤«¤...
¤³¤Î¥Ö¥í¥Ã¥¯¡Ömove to¡×¤Ï¡¢¤ª³¨¤«¤¥«¥á¤Î¥Ä¡¼¥ë¥Ü¥Ã¥¯¥¹¤Ë...
#ref(tutporial_100.png)
#contents
*½àÈ÷¤¹¤ë [#v88a6ef4]
¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ë¤Ï¡¢¼¡¤Î¤â¤Î¤ò¤½¤í¤¨¤ë¤È½ñ¤¤¤Æ¤¢¤ë¡£
+Web¥Ö¥é¥¦¥¶
+¥·¥ó¥×¥ë¤Ê¥Æ¥¥¹¥È¥¨¥Ç¥£¥¿
+Subversion
+Blockly¤Î¥½¡¼¥¹¥³¡¼¥É
+(java)
ºÇ½é¤Î2¤Ä¤Ï¡¢¼«Ê¬¤Î¹¥¤ß¤Î¤â¤Î¤ò»È¤¨¤Ð¤¤¤¤¤Ç¤·¤ç¤¦¡£
ºÇ¸å¤Î2¤Ä¤Ï¡¢¼¡¤Î¥¹¥Æ¥Ã¥×¤ÇÆþ¼ê¤¹¤ë¤±¤É¡¢Subversion¤Ï¤Ê¤¯...
¡öÊ䡧
¡ö¤µ¤é¤Ë¡¢5ÈÖÌܤΥġ¼¥ë¤È¤·¤Æ¡¢Java¤¬É¬Íס£
¡ö¥³¥Þ¥ó¥É¥×¥í¥ó¥×¥È¤Ç¡Ö> java -version¡×¤È¤ä¤ë¤È¡¢Æ³Æþ...
¡öƳÆþ¤µ¤ì¤Æ¤Ê¤¤¾ì¹ç¤Ï¡¢http://www.oracle.com/technetwor...
¡öJava¤¬¤¢¤ë¤Î¤Ë¥³¥Þ¥ó¥É¥×¥í¥ó¥×¥È¤«¤é»È¤¨¤Ê¤¤¾ì¹ç¤Ï¡¢´Ä...
**Subversion¤ÈBlockly¥½¡¼¥¹¥³¡¼¥É¤Î¥À¥¦¥ó¥í¡¼¥É [#ee4b95bf]
¤È¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ë¤Ï½ñ¤¤¤Æ¤¢¤ë¤±¤ì¤É¡¢Github¤Î¡ÖDownload ...
https://github.com/google/blockly/archive/master.zip
Github¤ò»È¤Ã¤Æ¤¤¤ë¤Ê¤é¡¢¤³¤Á¤é¡£
git clone https://github.com/google/blockly
¤³¤ì¤Ê¤é¡¢Subversion¤ÏÉÔÍס£
¥Õ¥¡¥¤¥ë¤ò¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¡¢²òÅष¤¿¤é¡¢¡Ö¥µ¥ó¥×¥ë¥¢¥×¥ê...
**¥µ¥ó¥×¥ë¥¢¥×¥ê¤ÇÆ°ºî¥Á¥§¥Ã¥¯ [#m00ad4e7]
¥µ¥ó¥×¥ë¥¢¥×¥ê¤Î¡Ö¤ª³¨¤«¤¥«¥á¡×¤ò¼Â¹Ô¤¹¤ë¤Ë¤Ï
+(¥½¡¼¥¹¥³¡¼¥É)\apps\turtle\index.html¤ò¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤·...
**¤³¤ì¤«¤é¤ä¤ë¤³¤È [#t22212dd]
¤³¤Î¥Á¥å¡¼¥È¥ê¥¢¥ë¤Ç¤Ï¡¢\apps\turtle¥Õ¥©¥ë¥À¤Ë¤¢¤ë¡Öturtl...
¤³¤³¤Ç¤Ï¡¢¡Ömove_to¡×¥Ö¥í¥Ã¥¯¤òºî¤Ã¤Æ¤¤¤Þ¤¹¡£¡Ömove_to¡×...
*Step1¡§¥Ö¥í¥Ã¥¯¤òÀ߷פ¹¤ë [#raf2cf73]
¤Ç¡¢¥Ö¥í¥Ã¥¯¤òºî¤ê»Ï¤á¤Æ¤ß¤¿¡£
**¥Ö¥í¥Ã¥¯¹©¾ì¤Çºî¤ë [#j4060590]
¿·¤·¤¤¥Ö¥í¥Ã¥¯¤òÀ߷פ¹¤ë¤Ë¤Ï¡¢¥Ç¥â¥¢¥×¥ê¤Ë¤¢¤ë[[¥Ö¥í¥Ã¥¯...
¥Ö¥í¥Ã¥¯¹©¾ì¤ò»È¤¦¤È¡¢¿·¤·¤¤¥Ö¥í¥Ã¥¯¤Î¸«¤¿Ìܤȵ¡Ç½¤ò´Êñ...
¤Ç¤Ï¡¢¥Ö¥í¥Ã¥¯¹©¾ì¤Ç¡¢²¼µ¤Î¤è¤¦¤Ë¥Ö¥í¥Ã¥¯¤òÁȤßΩ¤Æ¤ë
#ref(BlockFactory_MoveTo_zps80888682.png)
**¥×¥ì¥Ó¥å¡¼ [#o9867b06]
¥Ö¥í¥Ã¥¯¤òÁȤßΩ¤Æ¤¿¤é¡¢preview(¥×¥ì¥Ó¥å¡¼)¤ò¸«¤Æ¤ß¤ë¡£¼¡...
#ref(BlockFactory_MoveTo_Preview_zps16065a5d.png)
#Ê䡧²¼µ¤ÎURL¤Ç¶¦Í
https://blockly-demo.appspot.com/static/apps/blockfacto...
**¥é¥ó¥²¡¼¥¸ ¥³¡¼¥É [#d6f8701b]
Language Code¡Ê¥é¥ó¥²¡¼¥¸ ¥³¡¼¥É¡Ë¤ò¸«¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ë¥³...
Blockly.Blocks['move_to'] = {
init: function() {
this.setHelpUrl('http://www.example.com/');
this.setColour(160);
this.appendDummyInput()
.appendField(" move to");
this.appendValueInput("XPOS")
.setCheck("Number")
.appendField("x");
this.appendValueInput("YPOS")
.setCheck("Number")
.appendField("y");
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip('');
}
};
**JavaScript ¥¹¥¿¥Ö¥³¡¼¥É [#bb348633]
stub code¡Ê¥¹¥¿¥Ö ¥³¡¼¥É¡Ë¤ò¸«¤ë¤È¡¢¼¡¤Î¤è¤¦¤Ë¥³¡¼¥É¤¬É½...
Blockly.JavaScript['move_to'] = function(block) {
var value_xpos = Blockly.JavaScript.valueToCode(block, ...
var value_ypos = Blockly.JavaScript.valueToCode(block, ...
// TODO: Assemble JavaScript into code variable.
var code = '...';
return code;
};
¥Ö¥í¥Ã¥¯¥Ç¥¶¥¤¥ó¤Î¾ÜºÙ¤Ï¡¢https://code.google.com/p/block...
¥³¡¼¥ÉÀ¸À®¤Î¾ÜºÙ¤Ï¡¢ https://code.google.com/p/blockly/wi...
*Step2¡§blocks.js¥Õ¥¡¥¤¥ë¤òÊÔ½¸¤¹¤ë [#ode8945a]
¥Æ¥¥¹¥È¥¨¥Ç¥£¥¿¤Çblocks.js¥Õ¥¡¥¤¥ë¤ò³«¤¯¡£
¤Ç¡¢¼¡¤Î¥³¡¼¥É¤Îľ¸å¤Ë¡¢Àè¤Û¤É¤Î2¤Ä¤Î¥³¡¼¥É¤òŽ¤êÉÕ¤±¤Þ¤¹¡£
Blockly.JavaScript['draw_move'] = function(block) {
// Generate JavaScript for moving forward or backwards.
var value = Blockly.JavaScript.valueToCode(block, 'VALU...
Blockly.JavaScript.ORDER_NONE) || '0';
return 'Turtle.' + block.getFieldValue('DIR') +
'(' + value + ', \'block_id_' + block.id + '\');\n';
};
//¤³¤³¤Ë2¤Ä¤Î¥³¡¼¥É¤òŽ¤êÉÕ¤±¤ë
¤½¤ì¤«¤é¡¢°ìÉô¤ò¤³¤ó¤Ê¤Õ¤¦¤Ë½¤Àµ¤·¤Þ¤¹¡£
Blockly.Blocks['draw_moveto'] = {
// move turtle to absolute x,y location
// for reference 0,0 is top/let and 200,200 is centre
init: function() {
this.setHelpUrl('');
this.setColour(160);
this.appendDummyInput()
.appendField(BlocklyApps.getMsg('Turtle_moveTo'));
this.appendValueInput("XPOS")
.setCheck("Number")
.appendField("x");
this.appendValueInput("YPOS")
.setCheck("Number")
.appendField("y");
this.setInputsInline(true);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip(BlocklyApps.getMsg('Turtle_moveToTool...
}
};
Blockly.JavaScript['draw_moveto'] = function(block) {
// Generate JavaScript for moving to absolute position
var xpos = Blockly.JavaScript.valueToCode(block, 'XPOS'...
var ypos = Blockly.JavaScript.valueToCode(block, 'YPOS'...
return 'Turtle.moveTo(' + xpos + ',' + ypos + ', \'bloc...
};
¤½¤·¤¿¤é¡¢blocks.js¥Õ¥¡¥¤¥ë¤òÊݸ¤·¤Þ¤¹¡£
* Ê䡧
* ¤±¤Ã¤³¤¦Êѹ¹ÅÀ¤¬Â¿¤¯¤Æ¡¢´Ö°ã¤¨¤¿¡£
* ¥Õ¥¡¥¤¥ë¤Î½¤ÀµÅÀ¤Ï¡¢¤³¤ó¤Ê´¶¤¸¡£
#ref(tutporial_150.png)
*Step3¡§turtle.js¥Õ¥¡¥¤¥ë¤òÊÔ½¸¤¹¤ë [#yc4f1dd3]
turtle.js¥Õ¥¡¥¤¥ë¤ò¥¨¥Ç¥£¥¿¤Ç³«¤¯
¡Ö// Turtle API¡×¥³¥á¥ó¥È¤Î²¼¤Ë¤¢¤ë¡¢ Turtle APIÉôʬ¤ò¸«...
Turtle.moveBackward{...}¥Ö¥í¥Ã¥¯¤Î¸å¤í¤Ë¡¢¼¡¤ÎAPI¥³¡¼¥É¤ò...
Turtle.moveTo = function(xpos, ypos, id) {
BlocklyApps.log.push(['MT', xpos, ypos, id]);
};
¤â¤¦¤Ò¤È¤Ä¡£Turtle.step = function(command, values) {...}...
case 'MT': // Move To
Turtle.x=values[0];
Turtle.y=values[1];
break;
¤½¤·¤¿¤é¡¢turtle.js¥Õ¥¡¥¤¥ë¤òÊݸ¤¹¤ë¡£
*Step4¡§template.soy¥Õ¥¡¥¤¥ë¤òÊÔ½¸¤¹¤ë [#d1a286d0]
template.soy¤ò¥¨¥Ç¥£¥¿¤Ç³«¤¯¡£
{template .messages}¥Ö¥í¥Ã¥¯¤ÎÃæ¤Ë¶õ¹Ô¤ò¤¢¤±¤Æ¡¢¼¡¤Î¥³¡¼...
¥ª¥¹¥¹¥á¤Î°ÌÃ֤ϡ¢ <span id="Turtle_moveBackward"> ... </...
<span id="Turtle_moveToTooltip">{msg meaning="Turtle.m...
<span id="Turtle_moveTo">{msg meaning="Turtle.moveTo"...
¤½¤ì¤«¤é¡¢¿·¤·¤¤¥Ö¥í¥Ã¥¯¤¬¥Ä¡¼¥ë¥Ü¥Ã¥¯¥¹¤Ëɽ¼¨¤µ¤ì¤ë¤è¤¦...
<block type="draw_moveto">
<value name="XPOS">
<block type="math_number">
<field name="NUM">200</fi...
</block>
</value>
<value name="YPOS">
<block type="math_number">
<field name="NUM">200</fi...
</block>
</value>
</block>
¤½¤·¤¿¤é¡¢template.soy¥Õ¥¡¥¤¥ë¤òÊݸ¤·¤Þ¤¹¡£
*Step5¡§Êѹ¹¤·¤¿¥Õ¥¡¥¤¥ë¤ò¥³¥ó¥Ñ¥¤¥ë¤¹¤ë [#t4a5135b]
¤³¤³¤Ç¡¢Windows¤Ê¤é¥³¥Þ¥ó¥É¥×¥í¥ó¥×¥È¤ò³«¤¤¤Æ¡¢¤ª³¨¤«¤¥«...
> cd <myfolder>/blockly/apps/turtle
¤½¤ì¤«¤éJava¤Ç¥³¥ó¥Ñ¥¤¥ë¡£Java¤Ë¤Ä¤¤¤Æ¤Ï¡¢ËÁƬ¤ÎÊä¤⻲...
> java -jar ../_soy/SoyToJsSrcCompiler.jar --outputPathF...
¡öÊ䡧
ËöÈø¤Î¡Ö../common.soy,template.soy¡×¤Ï¡¢¥À¥Ö¥ë¥³¡¼¥Æ¡¼¥·...
*Step6¡§¿·¤·¤¤¥Ö¥í¥Ã¥¯¤ò¥Æ¥¹¥È¤¹¤ë [#of6b2cf0]
ºÆÅÙ¡¢index.html¤ò³«¤¯¤È¡¢¡Ömove_to¡×¥Ö¥í¥Ã¥¯¤¬Äɲ䵤ì¤Æ...
#ref(tutporial_300.png)
¥Æ¥¹¥È¤Î¤¿¤á¤Ë¡¢¤³¤ó¤Ê¥³¡¼¥É¤òÁȤó¤Ç¤ß¤¿¡£
#ref(tutporial_200.png)
*»²¹Í [#db8c0669]
¸ø¼°¥µ¥¤¥È
-[[Tutorial_CreateYourFirstBlock:https://code.google.com/...
-[[DefiningBlock:https://code.google.com/p/blockly/wiki/D...
-[[GeneratingCode:https://code.google.com/p/blockly/wiki/...
¥Ú¡¼¥¸Ì¾: