ご返信ありがとうございます。
なるほど、2回目以降はSetScreenFlipTargetWindowの実行だけで良かったのですね。
しかし、指示のあった通りに修正を試みたのですが、依然として同様の現象が起きています…。
一行ずつ実行してみても、特に必要な処理が行われていないわけでもないようです。
描画処理を行ってからScreenFlipしているが、それが画面に反映されない、といった具合です。
実際に動かしている動画をアップしましたので、お時間がありましたらご覧下さい。
初回はマップ画面に描画先が当てられており、2回目にアニメーション画面へと移しています。
https://youtu.be/uVU3bPYPDVU
描画先を切り替える処理を行っている部分のコード(修正後)を以下に載せます。
描画とScreenFlipはこの後にTimerを使って行っています。
/// <summary>
/// DXライブラリを初期化します。
/// 描画領域のサイズは、初期化に使用した宛先コントロールの初期サイズで固定されます。
/// </summary>
public static void Init(IntPtr dest) {
DXLibrary.DrawTask.Enabled = false;
//リソース初期化
DXLibrary.ClearResources();
if(DX.DxLib_IsInit() == DX.TRUE) {
DX.SetScreenFlipTargetWindow(dest);
} else {
//無効にする
DX.SetUseDirectInputFlag(DX.FALSE);
//有効にする
DX.SetDoubleStartValidFlag(DX.TRUE);
DX.SetUseVramFlag(DX.TRUE);
DX.SetUseIMEFlag(DX.TRUE);
DX.ChangeWindowMode(DX.TRUE);
//その他
DX.ChangeFontType(DX.DX_FONTTYPE_ANTIALIASING);
DX.SetUserWindow(dest);
//初期化実行
if(DX.DxLib_Init() == -1) {
MessageBox.Show(Resources.MsgE_Failed.Replace("$", "描画エリアの設定"), Resources.AppName, MessageBoxButtons.OK, MessageBoxIcon.Error);
Application.Exit();
return; //初期化に失敗
}
}
DX.SetDrawScreen(DX.DX_SCREEN_BACK);
//定期的に描画処理を行う
if(DXLibrary.Setupped == false) {
DXLibrary.Setupped = true;
DXLibrary.DrawTask.Tick += DXLibrary.Draw;
DXLibrary.DrawTask.Interval = 10;
}
}