protected override void Initialize() { base.Initialize(); var dirs = new[] { @"img\PPD\home", @"img\PPD\main_game", @"img\PPD\single", @"img\PPD\multi" }; foreach (var dir in dirs) { var spriteManager = new DirSpriteManager(dir); spriteManager.Pack(); } homeResourceManager = new PPDFramework.Resource.SpriteResourceManager(device, @"img\PPD\home"); input = PPDSetting.Setting.EveryFramePollingDisabled ? new AccurateInput(Form.MainForm, PPDSetting.Setting.AccurateInputSleepTime) : new Input(Form.MainForm); input.Load(); sound = new Sound(Form.MainForm); sound.Initialize(); keyConfigManager = new KeyConfigManager(); keyConfigManager.Load("keyconfig.ini"); for (int i = 0; i < PPDSetting.DefaultSounds.Length; i++) { sound.AddSound(PPDSetting.DefaultSounds[i]); } Form.MainForm.ClientSize = new System.Drawing.Size(PPDSetting.Setting.Width, PPDSetting.Setting.Height); mouseManager = new MouseManager(Control, device.Offset, device.Scale); screenShotManager = new ScreenShotManager(device); sceneManager = new SceneManager(device) { GameHost = this }; sceneManager.Update(EmptyInputInfo.Instance, MouseInfo.Empty, sound); movieVolumeSprite = new MovieVolumeSprite(device, this); timerManager = new TimerManager(gameTimer); if (CheckExecuteMode(out string gamePath)) { LoadSpecial(gamePath); } else { InitOverray(); LoadNormal(); } LoadCommon(); TextEditableControl.IMEStarted += control_IMEStarted; TextEditableControl._EnabledChanged += control_EnabledChanged; }