数秒おきに一時停止して命令を実行する マイクラ&Python

1秒おきにプロックが自動建築されるマイクラのPythonプログラムを解説 マインクラフト+Python
マインクラフト+Python

今まで紹介してきたマインクラフトのPythonプログラムでは、コマンドを実行するとモノが一瞬で自動建築されました。
これはこれで不自由ないのですが、ブロックが建築されてゆく過程もゆっくり見てみたいものですよね。
そんな時に利用できるのが、Pythonプログラムの sleep という命令です。
sleep は指定された秒数だけ処理を一時停止し、指定時間が経過すると続きの処理が開始されるというもので、コマ送りのように自動建築される過程を見ることができます。

プログラムを sleep で一時停止して建築の過程をながめる

今回は、過去の記事で紹介した簡単なプログラム「道を作る」を改造し、ゆっくり自動建築される動きを眺めましょう。
以下にサンプルプログラムを掲載しますので、ご自身の環境で動かしてみたい場合は以下の場所に保存してください。
ファイルパス(Macの場合)
/Users/ユーザ名/Library/Application Support/minecraft/mcpipy/sleep.py

こちらに掲載したサンプルを実行するには、チャット入力エリアに以下のコマンドを入力してください。

/py sleep

プレーヤの東側に向かって、0.5秒間隔で道が建築されたと思います。
もしチャットでエラーメッセージが表示されてしまった場合は、エラーメッセージ内に書かれている行番号に記述ミスがあると思いますので、確認してみてくださいね。

1秒ごとにブロックが自動建築されるようす。マインクラフトとPython

一時停止プログラムの解説

このプログラムで注目すべき点は、まずPythonプログラムで時間が扱えるようにするために読み込んでいる部分です。

これを書いておかないと時間処理をプログラム内で使用できませんので、ご注意ください。
そして、色々な場所で書かれている

などの部分です。
8行めで読み込まれた外部のプログラム「time」の「sleep」という命令を使って、丸括弧の中で指定している秒数だけ処理を一時停止するというものです。
少数や整数で指定することができますので、色々な秒数を指定して実行してみてください。

コマンド実行時にパラメータを指定して、そのパラメータの秒数ぶんプログラム実行を一時停止するように改造してみるのも面白いでしょうね。


タイトルとURLをコピーしました