マイクラでプログラミング(Scratch2.0編)前編

Windows上で、Pythonからマイクラの制御はできている前提。

そして、Scratch2.0をインストールしておく。

次のページから「Adobe AIR」と「Scratch Offline Editor」をインストール。

https://scratch.mit.edu/scratch2download/

Scratchのwikiで、Pythonに関するページを参照。

blockextというPythonのライブラリを使えば、Scratch2.0のブロックを作って連携できるみたい。

次のzipファイルをダウンロードして解凍。

https://github.com/blockext/blockext/archive/master.zip

blockext-masterフォルダにカレントディレクトリを移して、「setup.py install」と実行し、ライブラリをインストール。

blockext-master>setup.py install

エラーメッセージっぽい物が出なけりゃ大丈夫。

でも、一応確かめる。「python」と入力して、Pythonのインタプリタを起動し、「import blockext」と入力。

blockext-master>python
Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 17:54:52) [MSC v.1900 32 bit (Intel)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import blockext
>>>

何も表示されないってことは、大丈夫ってこと。

「exit()」か[Ctrl]+[z]を入力してReturnキーで、終了。

Use exit() or Ctrl-Z plus Return to exit
>>> ^Z

では、サンプルを使ってスクラッチ用の拡張ブロックを作ってみよう。

解凍したblockext-masterフォルダ内のexample.pyを実行。

blockext-master>example.py
Listening on localhost:1234

すると、localhost:1234と、ポートが開かれたとのメッセージが表示される。

webブラウザから、localhost:1234を開く。

リンクが2つ表示される。今回はScratch2用の拡張ファイルがほしいので、上側のリンクを開いて、「Scratch Fancy Spaceship English.s2e」をダウンロード。

コマンドラインには、以下の様なログが表示されている。

127.0.0.1 – – [07/Jun/2017 19:13:58] “GET / HTTP/1.1” 200 –
127.0.0.1 – – [07/Jun/2017 19:14:15] “GET /_generate_blocks/scratch HTTP/1.1” 302 –
127.0.0.1 – – [07/Jun/2017 19:14:15] “GET /_generate_blocks/scratch/en/Scratch%20Fancy%20Spaceship%20English.s2e HTTP/1.1” 200 –

では、続いてScratch2.0を起動して、[Shift]キーを押しながらメニューの「File」を開いて、「Import Experimental Extension」を選択。
今、ダウンロードしたs2eファイルを開く。

「More Blocks」を選択すると、拡張ブロックが表示されているはず。

だが、この画像では「Fancy Spaceship」の右に赤丸が表示されている。

これはPythonのライブラリと接続されていないということ。

何故か?それは、[Ctrl]+[c]キーでプログラムを停止してしまっていたから。

プログラムは停止させないで、Scratch2で簡単なプログラムを作って実行してみる。

変数fooに文字列「ABC」を入れて、5秒間Say!

127.0.0.1 – – [07/Jun/2017 20:33:31] “GET /reset_all HTTP/1.1” 200 –
127.0.0.1 – – [07/Jun/2017 20:33:31] “GET /set_foo/ABC HTTP/1.1” 200 –
ABC
127.0.0.1 – – [07/Jun/2017 20:33:36] “GET /say_for_secs/19/ABC/5 HTTP/1.1” 200 –

よし。動いた。

ここまで行けば、後はマイクラを制御するためのブロックを作ってScratchから実行するだけだ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です