〇Pycraft mod for MinetestとPythonで二つの画面を切り替えたアニメーション画像
作成方法
1. Pycraft mod for MinetestのインストールPycraft mod for Minetestをインストールしていない場合は、以下の記事を参考にしてインストールしてください。
Ubuntu20.04でPycraft mod for MinetestとPythonを使用して指定されたブロックの床を作成する
2. プログラミング
以下のコードで、二つの画像を切り替えたアニメーションを表示します。Thonnyの場合は、以下のコードを保存後、緑色の再生ボタンをクリックして実行してください。終了するときはCtrl+Cを押してください。
import mcpi.minecraft as minecraft
import mcpi.block as block
import time
patterns = [
[
[ 7, 7, 169, 169, 169, 169, 7, 7],
[ 7, 169, 7, 7, 7, 7, 169, 7],
[ 169, 7, 7, 7, 7, 7, 7, 169],
[ 169, 7, 7, 7, 7, 7, 7, 169],
[ 169, 7, 7, 7, 7, 7, 7, 169],
[ 169, 7, 7, 7, 7, 7, 7, 169],
[ 7, 169, 7, 7, 7, 7, 169, 7],
[ 7, 7, 169, 169, 169, 169, 7, 7]
],
[
[ 169, 7, 7, 7, 7, 7, 7, 169],
[ 7, 169, 7, 7, 7, 7, 169, 7],
[ 7, 7, 169, 7, 7, 169, 7, 7],
[ 7, 7, 7, 169, 169, 7, 7, 7],
[ 7, 7, 7, 169, 169, 7, 7, 7],
[ 7, 7, 169, 7, 7, 169, 7, 7],
[ 7, 169, 7, 7, 7, 7, 169, 7],
[ 169, 7, 7, 7, 7, 7, 7, 169]
]
]
# ローカルサーバに接続
mc = minecraft.Minecraft.create("127.0.0.1")
# プレイヤーの位置を取得
pos = mc.player.getPos()
print(pos)
pos.z -= 3
# 指定されたパターンを交互に表示
try:
while True:
for frame in range(len(patterns)):
for row in range(len(patterns[frame])):
for column in range(len(patterns[frame][row])):
mc.setBlock( pos.x+column, pos.y+row, pos.z, patterns[frame][row][column])
time.sleep(3)
except KeyboardInterrupt:
# クリーンアップ
for row in range(len(patterns[0])):
for column in range(len(patterns[frame][row])):
mc.setBlock( pos.x+column, pos.y+row, pos.z, block.AIR)
0 件のコメント:
コメントを投稿