ผลต่างระหว่างรุ่นของ "Blockly"
ไปยังการนำทาง
ไปยังการค้นหา
Jittat (คุย | มีส่วนร่วม) |
Jittat (คุย | มีส่วนร่วม) |
||
(ไม่แสดง 7 รุ่นระหว่างกลางโดยผู้ใช้คนเดียวกัน) | |||
แถว 40: | แถว 40: | ||
<pre> | <pre> | ||
<script> | <script> | ||
− | var | + | var workspace = Blockly.inject('blocklyDiv', |
− | + | {toolbox: document.getElementById('toolbox')}); | |
</script> | </script> | ||
</pre> | </pre> | ||
=== สร้างโค้ดและเรียกให้ทำงาน === | === สร้างโค้ดและเรียกให้ทำงาน === | ||
+ | |||
+ | ตาม [https://developers.google.com/blockly/guides/configure/web/code-generators] | ||
+ | |||
+ | * include generator | ||
+ | |||
+ | <pre> | ||
+ | <script src="javascript_compressed.js"></script> | ||
+ | </pre> | ||
+ | |||
+ | * generate ด้วย | ||
+ | |||
+ | <pre> | ||
+ | var code = Blockly.JavaScript.workspaceToCode(workspace); | ||
+ | </pre> | ||
+ | |||
+ | === Custom toolbox === | ||
+ | |||
+ | * ใช้ [https://blockly-demo.appspot.com/static/demos/blockfactory/index.html Blockly Developer Tools] | ||
+ | * Export toolbox xml | ||
== สร้าง block เอง == | == สร้าง block เอง == | ||
+ | |||
+ | * สร้าง block ใน dev tool | ||
+ | ** export จาก dev tool ได้สองส่วน: block description (สำหรับสร้าง block ใน ui) และ stub ของ generator | ||
+ | * สร้าง toolbox & workspace | ||
+ | ** export toolbox เมื่อส่วนที่แล้ว | ||
+ | * import block: | ||
+ | ** โหลด block definition (ใช้ json) | ||
+ | ** ใส่ code generator | ||
+ | |||
+ | === block ที่มีโค้ดเป็น input === | ||
+ | |||
+ | * การสร้าง code ของ blocks ภายใน | ||
+ | * การสร้างตัวแปรภายในใหม่ | ||
+ | * การป้องกันการวนซ้ำไม่รู้จบ | ||
== การใช้ interpreter == | == การใช้ interpreter == | ||
+ | เพื่อแยกการทำงานของโค้ดออกจาก javascript ของ browser | ||
+ | |||
+ | * ใส่ interpreter | ||
+ | * เขียน api hook เพื่อทำงานร่วมกับ api ของ browser |
รุ่นแก้ไขปัจจุบันเมื่อ 02:49, 4 สิงหาคม 2561
บทความนี้สรุปขั้นตอนคร่าว ๆ ในการพัฒนาเกมการเขียนโปรแกรมด้วย Blockly
เนื้อหา
เกมอย่างง่าย: ใส่ blockly ในหน้าเว็บ
ใส่ blockly ในหน้าเว็บ
ขั้นตอนคร่าว ๆ ตาม [1]
- Download blockly
- โหลด script ดังนี้
<script src="blockly_compressed.js"></script> <script src="blocks_compressed.js"></script> <script src="msg/js/th.js"></script>
- สร้าง toolbox เช่น
<xml id="toolbox" style="display: none"> <block type="controls_if"></block> <block type="controls_repeat_ext"></block> <block type="logic_compare"></block> <block type="math_number"></block> <block type="math_arithmetic"></block> <block type="text"></block> <block type="text_print"></block> </xml>
- สร้าง div ไว้ใส่ blockly
<div id="blocklyDiv" style="height: 500px; width: 800px;"> </div>
- เรียกให้ inject
<script> var workspace = Blockly.inject('blocklyDiv', {toolbox: document.getElementById('toolbox')}); </script>
สร้างโค้ดและเรียกให้ทำงาน
ตาม [2]
- include generator
<script src="javascript_compressed.js"></script>
- generate ด้วย
var code = Blockly.JavaScript.workspaceToCode(workspace);
Custom toolbox
- ใช้ Blockly Developer Tools
- Export toolbox xml
สร้าง block เอง
- สร้าง block ใน dev tool
- export จาก dev tool ได้สองส่วน: block description (สำหรับสร้าง block ใน ui) และ stub ของ generator
- สร้าง toolbox & workspace
- export toolbox เมื่อส่วนที่แล้ว
- import block:
- โหลด block definition (ใช้ json)
- ใส่ code generator
block ที่มีโค้ดเป็น input
- การสร้าง code ของ blocks ภายใน
- การสร้างตัวแปรภายในใหม่
- การป้องกันการวนซ้ำไม่รู้จบ
การใช้ interpreter
เพื่อแยกการทำงานของโค้ดออกจาก javascript ของ browser
- ใส่ interpreter
- เขียน api hook เพื่อทำงานร่วมกับ api ของ browser