Blocklyで独自言語のピースを作成1:手法変更につき中断


前回の記事

前回は,ひとまずBlocklyが動かせるか確認するために基本的な動きを確認した.

今回の目標

自分で設計した言語に合わせてBlocklyで置くことができるブロックを変更していく.
一旦は,"play(60, 0.5);" のようにplay関数を表現できるようなものを作成.


ブロック作成

このサイトを一旦参考にしてみる.

Blockly Developer Toolsを使用するらしい.

デベロッパーツールの説明とデモのURLがあったが,簡単に眺めても使い方がわからないため,使い方を調べ次のサイトに.

(2018年の記事)


ブロックデザイン

1.Blockly Developer Toolsを開く
2.「Block Factory」タブをクリック(普通にリンク先飛んだらデフォで選択される)

最初の状態

3.緑のブロックの左にある「Input」から「dummy input」を,「Field」から「text」を持ってきて次のように設定し,ブロックの名前を表現させる.

4.inputとして次のように引数を追加する.

5.引数が縦に並んでいるのを横にするために,「automatic」を「inline」に変更する.

6.左のブロックに接続出来るように,「no connections」を「←left output」に変更する.
7.tooltipとして関数の説明を記述する.

8.「Save "play"」ボタンをクリックする.

ブロックをエクスポート

1.「Block Exporter」タブをクリック
2.「play」ブロックのチェックボックスをONにする.

3.次のように「Export Settings」を設定する.

4.「Export」ボタンを押してダウンロード.


ブロック組み込み

変換コードの追加

play.jsを編集し,次の5行目のようにブロックから変換するコードを記述する.(元はcode = '…'となっている)

index.htmlにブロック読み込み

記事の中ではローカルにBlocklyを入れて行なっているが,今回はCodePenを用いて行なっているため,ローカルのjsファイルをどう読み込ませるのか分からず,調べる.

外部ファイルの読み込みはURLで行なっていたので,GoogleDriveに格納してURLを取得することにする.

先ほどのplay.jsとplay_block.jsをGoogle Driveに保存.

外部からいけるかとも思ったが,現状上手くいかなかったので大人しくGitHubからCloneしてきて行なってみる.

  • ブロック定義 blockly/blocks/play_block.js

  • 変換コード blockly/generators/javaScript/play.js

と格納する.

demos/generatorなんて存在しない,目的のファイルが見つからなくて困った.


Toolboxにブロック追加

17行目でブロックを追加している

ここまできたけど上手くできず,心機一転して1個目のサイトだけを参考にして新しくやってみる.



と思ったら,GitHub Pagesというものでできるかもしれないらしいので,そちらでも並行して行なってみる.


この記事が気に入ったらサポートをしてみませんか?