0
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:

修理済み。どういうわけか...魔法。

4

0 に答える 0