// // copied the source file by https://github.com/stackprobe/Factory/blob/master/SubTools/CopyLib.c // public DDMusic(DDSound sound_binding) { this.Sound = sound_binding; this.Sound.PostLoaded = () => DDSoundUtils.SetVolume(this.Sound.GetHandle(0), 0.0); // ロードしたらミュートしておく。 DDMusicUtils.Add(this); }
public static void EachFrame() { // app > @ enter EachFrame //Ground.EL.ExecuteAllTask(); // < app DDGround.EL.ExecuteAllTask(); DDMouse.ApplyPosNowIfNeeded(); DDCurtain.EachFrame(); if (DDSEUtils.EachFrame() == false) { DDMusicUtils.EachFrame(); } if (DDGround.MainScreen != null && DDSubScreenUtils.CurrDrawScreenHandle == DDGround.MainScreen.GetHandle()) { DDSubScreenUtils.ChangeDrawScreen(DX.DX_SCREEN_BACK); if (DDGround.RealScreenDraw_W == -1) { if (DX.DrawExtendGraph(0, 0, DDGround.RealScreen_W, DDGround.RealScreen_H, DDGround.MainScreen.GetHandle(), 0) != 0) // ? 失敗 { throw new DDError(); } } else { if (DX.DrawBox(0, 0, DDGround.RealScreen_W, DDGround.RealScreen_H, DX.GetColor(0, 0, 0), 1) != 0) // ? 失敗 { throw new DDError(); } if (DX.DrawExtendGraph( DDGround.RealScreenDraw_L, DDGround.RealScreenDraw_T, DDGround.RealScreenDraw_L + DDGround.RealScreenDraw_W, DDGround.RealScreenDraw_T + DDGround.RealScreenDraw_H, DDGround.MainScreen.GetHandle(), 0) != 0) // ? 失敗 { throw new DDError(); } } } GC.Collect(0); FrameProcessingMillis = (int)(DDUtils.GetCurrTime() - FrameStartTime); if (FrameProcessingMillis_Worst < FrameProcessingMillis || DDUtils.CountDown(ref FrameProcessingMillis_WorstFrame) == false) { FrameProcessingMillis_Worst = FrameProcessingMillis; FrameProcessingMillis_WorstFrame = 120; } // DxLib > DX.ScreenFlip(); if (DX.CheckHitKey(DX.KEY_INPUT_ESCAPE) == 1 || DX.ProcessMessage() == -1) { throw new DDCoffeeBreak(); } // < DxLib CheckHz(); ProcFrame++; DDUtils.CountDown(ref FreezeInputFrame); WindowIsActive = DDUtils.IsWindowActive(); if (IntTools.IMAX < ProcFrame) // 192.9日程度でカンスト { ProcFrame = IntTools.IMAX; // 2bs throw new DDError(); } DDPad.EachFrame(); DDKey.EachFrame(); DDInput.EachFrame(); DDMouse.EachFrame(); if (DDGround.RealScreen_W != DDConsts.Screen_W || DDGround.RealScreen_H != DDConsts.Screen_H || DDGround.RealScreenDraw_W != -1) { if (DDGround.MainScreen == null) { DDGround.MainScreen = new DDSubScreen(DDConsts.Screen_W, DDConsts.Screen_H); } DDGround.MainScreen.ChangeDrawScreen(); } else { if (DDGround.MainScreen != null) { DDGround.MainScreen.Dispose(); DDGround.MainScreen = null; } } // app > @ leave EachFrame // < app }
// // copied the source file by https://github.com/stackprobe/Factory/blob/master/SubTools/CopyLib.c // public void Play(bool once = false, bool resume = false, double volume = 1.0, int fadeFrameMax = 30) { DDMusicUtils.Play(this, once, resume, volume, fadeFrameMax); }