public static Vector2 calcBlockPosition(Block.iPosition i_pos) { Vector2 position = new Vector2(-(Block.BLOCK_NUM_X * 0.7f / 2.0f - 0.35f), -(Block.BLOCK_NUM_Y * 0.7f / 2.0f - 0.35f) + 1.0f); position.x += (float)i_pos.x * Block.COLLISION_SIZE; position.y += (float)i_pos.y * Block.COLLISION_SIZE; return(position); }
public static Vector3 calcBlockPosition(Block.iPosition i_pos) { Vector3 position = new Vector3(-(Block.BLOCK_NUM_X / 2.0f - 0.5f), -(Block.BLOCK_NUM_Y / 2.0f - 0.5f)); position.x += (float)i_pos.x * Block.COLLISION_SIZE; position.y += (float)i_pos.y * Block.COLLISION_SIZE; return(position); }
public static Vector3 calcBlockPosition(Block.iPosition i_pos) { // 배치할 왼쪽 위 구석 위치를 초기값으로 설정한다. Vector3 position = new Vector3(-(Block.BLOCK_NUM_X / 2.0f - 0.5f), -(Block.BLOCK_NUM_Y / 2.0f - 0.5f), 0.0f); // 초깃값 + 그리드 좌표 × 블록 크기. position.x += (float)i_pos.x * Block.COLLISION_SIZE; position.y += (float)i_pos.y * Block.COLLISION_SIZE; return(position); // 씬에서의 좌표를 반환한다. }
// 指定されたグリッド座標から、シーン上の座標を求める public static Vector3 calcBlockPosition(Block.iPosition i_pos) { // 配置する左上隅の位置を初期値として設定 Vector3 position = new Vector3(-(Block.BLOCK_NUM_X / 2.0f - 0.5f), -(Block.BLOCK_NUM_Y / 2.0f - 0.5f), 0.0f); // 初期値+グリッド座標×ブロックサイズ position.x += (float)i_pos.x * Block.COLLISION_SIZE; position.y += (float)i_pos.y * Block.COLLISION_SIZE; return(position); // シーン上の座標を返す }
public static Block.iPosition getNext_iPosition(Block.iPosition i_pos, Block.DIR4 dir) { Block.iPosition next_ipos = i_pos; switch (dir) { case Block.DIR4.RIGHT: next_ipos.x += 1; break; case Block.DIR4.LEFT: next_ipos.x -= 1; break; case Block.DIR4.UP: next_ipos.y += 1; break; case Block.DIR4.DOWN: next_ipos.y -= 1; break; } return(next_ipos); }
public static bool isValid_iPosition(Block.iPosition i_pos) { bool is_valid; do { is_valid = false; if (i_pos.x < 0 || Block.BLOCK_NUM_X <= i_pos.x) { break; } if (i_pos.y < 0 || Block.BLOCK_NUM_Y <= i_pos.y) { break; } is_valid = true; } while(false); return(is_valid); }
// 이웃 블록을 설정한다(같은 색일 때만). public void setConnectedBlock(Block.DIR4 dir, Block.iPosition connected) { this.connected_block[(int)dir] = connected; }