こんにちは。文字列の描画幅の違いについて、気になった点がありました。
GetDrawStringWidth()とGetDrawStringSize()とで、取得した描画幅の値が違うようです。
GetDrawStringWidth()は最後の行の描画幅を返して、GetDrawStringSize()は一番長い行の幅を返すようでした。
両者の結果が違うのが意図的な仕様でしたら問題無いのですが、少し気になったので報告させて頂きました。
//テストプログラム
#include <DxLib.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
ChangeWindowMode(TRUE);
DxLib_Init();
SetDrawScreen(DX_SCREEN_BACK);
ClearDrawScreen();
const char* s = "いちぎょうめ\n二行目"; //描画サイズを求める文字列
DrawString(100, 50, s, GetColor(255, 255, 255));
int w1, w2;
w1 = GetDrawStringWidth(s, strlen(s)); //描画サイズを求める@
GetDrawStringSize(&w2, NULL, NULL, s, strlen(s)); //描画サイズを求めるA
printfDx("@=%d A=%d\n", w1, w2); //@とAの結果を表示する。
ScreenFlip();
WaitKey();
DxLib_End();
return 0;
}
//結果は「@=51 A=102」となりました。(Ver 3.16e 8/11版を使用しました)