DxLib.h
extern int DrawObtainsString(int x, int y, int AddY, const TCHAR *String, unsigned int StrColor, unsigned int StrEdgeColor = 0, int FontHandle = -1, unsigned int SelectBackColor = 0xffffffff, unsigned int SelectStrColor = 0, unsigned int SelectStrEdgeColor = 0xffffffff, int SelectStart = -1, int SelectEnd = -1); // 描画可能領域に収まるように改行しながら文字列を描画
SetDrawArea関数で決めた領域に合わせて文字列を描画してくれる関数です。
#サンプル
#include "DxLib.h"
#include <string>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
SetOutApplicationLogValidFlag(FALSE);
ChangeWindowMode(TRUE);
SetDrawScreen(DX_SCREEN_BACK);
if (DxLib_Init() < 0)
return -1;
int Cr = GetColor(255, 255, 255);
std::string str = "いろはにほへと ちりぬるを わかれよたそ つねならむ ういのおくやま けふこえて\nあさきゆめみし よいもせす";
while (ProcessMessage() == 0)
{
ClearDrawScreen();
DrawObtainsString(0, 0, GetFontSize(), str.c_str(), Cr);
ScreenFlip();
}
DxLib_End();
return 0;
}
若干見切れていますけど、そこは勘弁……。
改行コード(\n)を途中で入れると、そこで改行してくれます。
サウンドノベルとかに使えそうですけど……実際どうでしょう?
余談ですが、文字列だけではなく図形verもあります。
extern int DrawObtainsBox(int x1, int y1, int x2, int y2, int AddY, unsigned int Color, int FillFlag ); // 描画可能領域に収まるように補正を加えながら矩形を描画