パイクラおじさんの日記

MinecraftでPythonを勉強するおじさんの日記です。

マイクラ内での読み込み(3)

反省点

  1. 5mメッシュを標高をそのままの比率でブロックを設置しているので傾斜が急峻。
  2. 高度差が大きいところは透けてしまう。
  3. 処理が重い。処理中は操作が困難。

対策

  1. 5x5に拡大する?
  2. 下に土を5個くらい付ける。
  3. sleep(?)を入れてみる。

akatsukix.seesaa.net

草+土x4にして、ループ毎にsleepを入れてみた。(loadnpy.py)

# coding: utf-8

import mcpi.minecraft as minecraft
import mcpi.block as block
import numpy as np
import sys
from time import sleep

NPY_DIR = "/Users/pycra/Desktop"
NPY_FILE = "npydata-{0:04d}-{1:02d}-{2:02d}.npy"

mc = minecraft.Minecraft()
mc.postToChat("Loadnpy.py Start!")

if len(sys.argv) < 4:
    print("loadnpy.py mesh1 mesh2 mesh3")
    exit(-1)

mesh1 = int(sys.argv[1])
mesh2 = int(sys.argv[2])
mesh3 = int(sys.argv[3])

array = np.load(NPY_DIR+"/"+NPY_FILE.format(mesh1, mesh2, mesh3))
(zshape, xshape) = array.shape

for z in range(zshape):
    sleep(0.01)  # sleep1
    for x in range(xshape):
        hval = array[z][x]
        mc.setBlocks(x, hval-1, z, x, hval-5, z, block.DIRT)
        mc.setBlock(x, hval, z, block.GRASS)
        sleep(0.001)  # sleep2

mc.postToChat("Loadnpy.py Finish!!!")

sleepを入れて操作は軽くなったけど、sleep時間を大きくするとじわじわブロックが設置されるのが見れて楽しいけど時間がかかるし、sleep時間を短くすると何列か溜まってからボロ、ボロっと表示されてしかも時間もそんなに短く感じない。 なかなか調整が難しい。

sleep1 sleep2 評価
0.1 0.01 軽くて楽しいけど時間がかかる
0.01 0.001 ボロボロ表示されるので楽しくない

f:id:pycra:20170918154710p:plain 草+土x4じゃ、まだ穴が開いてる部分がある。