いつも楽しく使わせて頂いています。
現在visualstudio2017を用いて800×800画面サイズのゲームを作っているのですが、
Release時とDebug時でゲーム画面のサイズが異なってしまいます。
Debug時には正常に800×800で画面が表示されるのですが、
Release時にはゲームのタイトル部分が見切れるくらい画面が大きく表示されてしまい、文字の表示もぼやけた感じになってしまいます。
また、Release時に大きく表示された画面を SetWindowSizeChangeEnableFlag(TRUE, TRUE) を用いてDebug時のサイズと同等まで手動で縮小すると、
文字が潰れ読めなくなってしまいます。
SetGraphModeの数値を800から下げると画面自体は小さくなるのですが、画面に表示される文字が左半分程度しか表示されず見切れてしまいます。
また、SetWindowSizeExtendRateを用いて縮小表示すると、文字が潰れ読めなくなってしまいます。
Release時のゲーム画面サイズをDebug時と同等にしたい場合、どの様に設定したら良いのでしょうか?
または、ゲーム画面を縮小しても文字表示が乱れないように記述する方法はあるでしょうか?
----------------------------------------------------------------------------
設定環境
・PC設定
解像度 2560×1440
テキスト・アプリのサイズ 150%
システムの種類 64ビット オペレーティング システム、x64 ベース プロセッサ
・開発環境
visual studio 2017
DxLib_VC Ver 3.20c
Debug x86 ローカル windows デバッガー
Release x86 ローカル windows デバッガー
----------------------------------------------------------------------------
プログラム1 (起動時の画面設定をしている部分)
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
int act_check = 1;
while (act_check == 1) {
act_check = main();
}
DxLib_End(); // DXライブラリ使用の終了処理
return act_check; // ソフトの終了
}
int main(void)
{
// ログファイルを出力しないように
SetOutApplicationLogValidFlag(FALSE);
// ウインドウモードで起動
ChangeWindowMode(TRUE);
// 画面サイズを800×800にする
SetGraphMode(800, 800, 32);
// 画面サイズを可変にする
SetWindowSizeChangeEnableFlag(TRUE, TRUE);
// DXlib初期化
if (DxLib_Init() == -1) {
return -1;
}
// 描画先を裏画面にする
SetDrawScreen(DX_SCREEN_BACK);
// フォントサイズを指定
SetFontSize(20);
// 描画文字にアンチエイリアスを適用
ChangeFontType(DX_FONTTYPE_ANTIALIASING_4X4);
----------------------------------------------------------------------------
プログラム2 (文字の描画をしている場所)
while(1){
// キーの押下状態を取得
GetHitKeyStateAll(input);
// 迷路の選択
choose_Maze();
// 次に進む
if (input[KEY_INPUT_RETURN] == 1) {
WaitTimer(100);
break;
}
// 画面をクリア
ClearDrawScreen();
// 文字列の描画
DrawFormatString(170, 140, GetColor(255, 255, 255), "迷路を選択して下さい [選択キーで迷路を選ぶ]);
DrawFormatString(170, 190, GetColor(255, 255, 255), "Enterキーで次に進む Escキーで前に戻る);
//メイン画面に転送
ScreenFlip();
//ウィンドウメッセージを処理
if (ProcessMessage() == -1) break;
}
// 迷路情報を処理
Maze_convert();
----------------------------------------------------------------------------