ผลต่างระหว่างรุ่นของ "Blockly"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
 
(ไม่แสดง 3 รุ่นระหว่างกลางโดยผู้ใช้คนเดียวกัน)
แถว 68: แถว 68:
 
== สร้าง block เอง ==
 
== สร้าง block เอง ==
  
ขั้นตอนทั่วไป
 
 
* สร้าง block ใน dev tool
 
* สร้าง block ใน dev tool
 +
** export จาก dev tool ได้สองส่วน: block description (สำหรับสร้าง block ใน ui) และ stub ของ generator
 
* สร้าง toolbox & workspace
 
* สร้าง toolbox & workspace
 +
** export toolbox เมื่อส่วนที่แล้ว
 
* import block:
 
* import block:
** โหลด block definition
+
** โหลด block definition (ใช้ json)
 
** ใส่ code generator
 
** ใส่ 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

สร้าง 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