Block.setShape(ID, START_X, START_Y, START_Z, END_X, END_Y, END_Z, DAMAGE);ブロックの形状を詳細に設定する関数。
ブロックの中心は0.5にあるので、それを基準にすると判りやすいだろう。
また、通常のブロックは一辺1mの正六面体だが、それ以上に大きい形にすることも可能。
当たり判定も設定した形状の沿う形となるが、若干不安定で通り抜けられる場合もある。
型 | 引数 | 説明 |
---|---|---|
int | ID | ブロックID |
double | START_X | |
double | START_Y | |
double | START_Z | |
double | END_X | |
double | END_Y | |
double | END_Z | |
int | DAMAGE | ブロックのダメージ値 |
//ID200に新しいブロックを追加する var ID = 200; var TEXTURE_ARRAY = [["log",1],["pumpkin",0],["chest_inventory",2],["furnace",1],["tnt",0],["command_block",0]]; Block.defineBlock(ID, "test"+ID, TEXTURE_ARRAY, 1, false, 0); //ダメージ毎に形を設定 for(var i=1;i<=16;i++){ Block.setShape(ID, 0.5-i/15, 0.5-i/15, 0.5-i/15, 0.5+i/15, 0.5+i/15, 0.5+i/15,i-1 ); } //棒で叩くと追加したブロックのダメージ値0〜15までを並べる function useItem(x,y,z,item){ if(item==280){ for(var i=0;i<16;i++){ Level.setTile(x+i*2,y+2,z,ID,i); } } }
コメントをかく