/// <summary> /// スキップモード・オートモードを解除する。 /// 両モード中、何か入力があれば解除されるのが自然だと思う。 /// どこで解除しているか分かるようにメソッド化した。 /// </summary> //public void CancelSkipAutoMode() //{ // this.SkipMode = false; // this.AutoMode = false; //} /// <summary> /// <para>主たる画面描画</para> /// <para>色々な場所(モード)から呼び出されるだろう。</para> /// </summary> public void DrawSurfaces() { DDCurtain.DrawCurtain(); // 画面クリア // Z-オーダー順 Novel.I.Status.Surfaces.Sort((a, b) => { int ret = a.Z - b.Z; if (ret != 0) { return(ret); } ret = SCommon.Comp(a.X, b.X); if (ret != 0) { return(ret); } ret = SCommon.Comp(a.Y, b.Y); return(ret); }); foreach (Surface surface in Novel.I.Status.Surfaces) // キャラクタ・オブジェクト・壁紙 { if (!surface.Act.Draw()) { surface.Draw(); } } }
/// <summary> /// シリアライザ実行時の「固有の状態」を再現する。 /// </summary> /// <param name="lines">シリアライザから取得した状態データ</param> protected virtual void Deserialize_02(string[] lines) { if (SCommon.Comp(lines, SERIALIZED_DUMMY, SCommon.Comp) != 0) { throw new DDError(); } }
/// <summary> /// サーフェスの比較 /// Z-オーダー順 /// </summary> /// <param name="a">左のサーフェス</param> /// <param name="b">右のサーフェス</param> /// <returns>比較結果</returns> private static int SS_Comp(Surface a, Surface b) { int ret = a.Z - b.Z; if (ret != 0) { return(ret); } ret = SCommon.Comp(a.X, b.X); if (ret != 0) { return(ret); } ret = SCommon.Comp(a.Y, b.Y); return(ret); }
private bool CheckInputPadButtonKey(bool キー設定Flag, DDInput.Button targetButton) // ret: 設定した。 { DDInput.Button[] buttons = new DDInput.Button[] { DDInput.DIR_2, DDInput.DIR_4, DDInput.DIR_6, DDInput.DIR_8, DDInput.A, DDInput.B, DDInput.L, }; if (キー設定Flag) { int pressKeyId = -1; foreach (int keyId in DDSimpleMenu.GetAllKeyId()) { if (DDKey.GetInput(keyId) == 1) { pressKeyId = keyId; } } if (pressKeyId != -1) { int[] keyIds; switch (pressKeyId) { case DX.KEY_INPUT_LCONTROL: case DX.KEY_INPUT_RCONTROL: keyIds = new int[] { DX.KEY_INPUT_LCONTROL, DX.KEY_INPUT_RCONTROL }; break; case DX.KEY_INPUT_LSHIFT: case DX.KEY_INPUT_RSHIFT: keyIds = new int[] { DX.KEY_INPUT_LSHIFT, DX.KEY_INPUT_RSHIFT }; break; case DX.KEY_INPUT_LALT: case DX.KEY_INPUT_RALT: keyIds = new int[] { DX.KEY_INPUT_LALT, DX.KEY_INPUT_RALT }; break; default: keyIds = new int[] { pressKeyId }; break; } // 他ボタンとの重複回避 if (SCommon.Comp(targetButton.KeyIds, keyIds, SCommon.Comp) != 0) // ? 違う { foreach (DDInput.Button button in buttons) { if (SCommon.Comp(button.KeyIds, keyIds, SCommon.Comp) == 0) // ? 同じ { button.KeyIds = targetButton.KeyIds; } } } targetButton.KeyIds = keyIds; return(true); } } else { int pressBtnId = -1; for (int padId = 0; padId < DDPad.GetPadCount(); padId++) { for (int btnId = 0; btnId < DDPad.PAD_BUTTON_MAX; btnId++) { if (DDPad.GetInput(padId, btnId) == 1) { pressBtnId = btnId; } } } if (pressBtnId != -1) { int[] btnIds = new int[] { pressBtnId }; // 他ボタンとの重複回避 if (SCommon.Comp(targetButton.BtnIds, btnIds, SCommon.Comp) != 0) // ? 違う { foreach (DDInput.Button button in buttons) { if (SCommon.Comp(button.BtnIds, btnIds, SCommon.Comp) == 0) // ? 同じ { button.BtnIds = targetButton.BtnIds; } } } targetButton.BtnIds = btnIds; return(true); } } return(false); }