for (unsigned int i = 0; i < text.length(); i++)
{
if (text.at(i) != '$')
{
currentLine += text.substr(i, 1);
// replacing it with currentLine="blabla"; still gives errors
}
else
{
// currentLine = "blabla"; -- no errors
drawText(currentLine, x, y + lineID * 10);
lineID++;
currentLine = "";
}
}
この関数は、複数行の文字列を描画することです。$ は改行を表します。
描画の直前に currentLine を設定しないと、screen.format.palette.ncolors と色を評価できないというエラーが表示されます。
drawText 関数が正しく機能すると仮定しましょう。次に、このエラーの原因は何ですか? このコード以外に currentLine を変更するものはありません。
編集:
currentLine (std::string) は空に見えます。ただし、 currentLine+" " は適切な文字列とスペースを返します。何が原因でしょうか?
編集#2:
修理済み。どういうわけか...魔法。