Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
    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);
    }
Ejemplo n.º 3
0
    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);  // シーン上の座標を返す
    }
Ejemplo n.º 5
0
    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);
    }
Ejemplo n.º 6
0
    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);
    }
Ejemplo n.º 7
0
 // 이웃 블록을 설정한다(같은 색일 때만).
 public void             setConnectedBlock(Block.DIR4 dir, Block.iPosition connected)
 {
     this.connected_block[(int)dir] = connected;
 }