コード例 #1
0
        /// <summary>
        /// ************************************************************************************************************************
        /// 局面に合わせて、駒ボタンのx,y位置を変更します
        /// ************************************************************************************************************************
        /// </summary>
        /// <param name="btnKoma">駒</param>
        public static void Redraw_KomaLocation(
            Finger figKoma,
            MainGui_Csharp mainGui
            )
        {
            RO_Star koma = Util_Starlightable.AsKoma(mainGui.Model_Manual.GuiSkyConst.StarlightIndexOf(figKoma).Now);

            Shape_BtnKoma btnKoma = Conv_Koma_InGui.FingerToKomaBtn(figKoma, mainGui);

            // マスと駒の隙間(パディング)
            int padX = 2;
            int padY = 2;

            int suji;
            int dan;

            Util_MasuNum.TryMasuToSuji(koma.Masu, out suji);
            Util_MasuNum.TryMasuToDan(koma.Masu, out dan);

            switch (Conv_SyElement.ToOkiba(koma.Masu))
            {
            case Okiba.ShogiBan:
                btnKoma.SetBounds(new Rectangle(
                                      mainGui.Shape_PnlTaikyoku.Shogiban.SujiToX(suji) + padX,
                                      mainGui.Shape_PnlTaikyoku.Shogiban.DanToY(dan) + padY,
                                      btnKoma.Bounds.Width,
                                      btnKoma.Bounds.Height
                                      ));
                break;

            case Okiba.Sente_Komadai:
                btnKoma.SetBounds(new Rectangle(
                                      mainGui.Shape_PnlTaikyoku.KomadaiArr[0].SujiToX(suji) + padX,
                                      mainGui.Shape_PnlTaikyoku.KomadaiArr[0].DanToY(dan) + padY,
                                      btnKoma.Bounds.Width,
                                      btnKoma.Bounds.Height
                                      ));
                break;

            case Okiba.Gote_Komadai:
                btnKoma.SetBounds(new Rectangle(
                                      mainGui.Shape_PnlTaikyoku.KomadaiArr[1].SujiToX(suji) + padX,
                                      mainGui.Shape_PnlTaikyoku.KomadaiArr[1].DanToY(dan) + padY,
                                      btnKoma.Bounds.Width,
                                      btnKoma.Bounds.Height
                                      ));
                break;

            case Okiba.KomaBukuro:
                btnKoma.SetBounds(new Rectangle(
                                      mainGui.Shape_PnlTaikyoku.KomadaiArr[2].SujiToX(suji) + padX,
                                      mainGui.Shape_PnlTaikyoku.KomadaiArr[2].DanToY(dan) + padY,
                                      btnKoma.Bounds.Width,
                                      btnKoma.Bounds.Height
                                      ));
                break;
            }
        }
コード例 #2
0
        /// <summary>
        /// 局面に合わせて、駒ボタンのx,y位置を変更します
        /// </summary>
        /// <param name="btnKoma">駒</param>
        public static void Redraw_KomaLocation(
            Finger figKoma,
            NarabeRoomViewModel shogiGui
            )
        {
            RO_Star_Koma koma = Util_Koma.AsKoma(shogiGui.GameViewModel.GuiSkyConst.StarlightIndexOf(figKoma).Now);

            Shape_BtnKoma btnKoma = Util_InGui.FingerToKomaBtn(figKoma, shogiGui);

            int suji;
            int dan;

            Util_MasuNum.MasuToSuji(koma.Masu, out suji);
            Util_MasuNum.MasuToDan(koma.Masu, out dan);

            switch (Util_Masu.GetOkiba(koma.Masu))
            {
            case Okiba.ShogiBan:
                btnKoma.SetBounds(new Rectangle(
                                      shogiGui.Shape_PnlTaikyoku.Shogiban.SujiToX(suji),
                                      shogiGui.Shape_PnlTaikyoku.Shogiban.DanToY(dan),
                                      btnKoma.Bounds.Width,
                                      btnKoma.Bounds.Height
                                      ));
                break;

            case Okiba.Sente_Komadai:
                btnKoma.SetBounds(new Rectangle(
                                      shogiGui.Shape_PnlTaikyoku.KomadaiArr[0].SujiToX(suji),
                                      shogiGui.Shape_PnlTaikyoku.KomadaiArr[0].DanToY(dan),
                                      btnKoma.Bounds.Width,
                                      btnKoma.Bounds.Height
                                      ));
                break;

            case Okiba.Gote_Komadai:
                btnKoma.SetBounds(new Rectangle(
                                      shogiGui.Shape_PnlTaikyoku.KomadaiArr[1].SujiToX(suji),
                                      shogiGui.Shape_PnlTaikyoku.KomadaiArr[1].DanToY(dan),
                                      btnKoma.Bounds.Width,
                                      btnKoma.Bounds.Height
                                      ));
                break;

            case Okiba.KomaBukuro:
                btnKoma.SetBounds(new Rectangle(
                                      shogiGui.Shape_PnlTaikyoku.KomadaiArr[2].SujiToX(suji),
                                      shogiGui.Shape_PnlTaikyoku.KomadaiArr[2].DanToY(dan),
                                      btnKoma.Bounds.Width,
                                      btnKoma.Bounds.Height
                                      ));
                break;
            }
        }