[C++] 259 SDL : 暫定順位をカラー化 Tetris

[M1 Mac, Monterey 12.6.3, clang 13.0.0, SDL 2.26.2, ChatGPT Plus, NO IDE]

テトリスC++版のプレイ中に暫定順位を表示するのに合わせて、ランクインしている場合はカラー化してリアルタイムで表示するようにしました。

for文を使ってレンダリングする場合は、バイト数が一致するようにしないと表示がおかしくなります。今回は6〜9位と10位(1バイト多い)を別扱いにしています。

これで基本的な機能はほぼ実装したでしょうか。

void Game::DrawPlaying(Renderer& renderer)
{
<中略>

for (int i = 0 ; i < 5 ; i++){
		snprintf(text, sizeof(text), "High score %d: %s %s", i+1, to_string(scores[i]).c_str(), dates[i].c_str());
		if (fullDates[i] != startTime){
			renderer.DrawText(text, 20, 170 + 40*i, mFont, 0xffffffff );
		} else {
			renderer.DrawText( text, 20, 170 + 40*i, mFont, 0xFF4500ff );
		}
}

for (int i = 5 ; i < 9 ; i++){
		snprintf(text, sizeof(text), "High score  %d: %s %s", i+1, to_string(scores[i]).c_str(), dates[i].c_str());
		if (fullDates[i] != startTime){
			renderer.DrawText(text, 100, 370 + 30*(i-5), mFont2, 0xffffffff );
		} else {
			renderer.DrawText(text, 100, 370 + 30*(i-5), mFont2, 0xFF4500ff );
		}
}

snprintf(text, sizeof(text), "High score 10: %s %s", to_string(scores[9]).c_str(), dates[9].c_str());
if (fullDates[9] != startTime){
		renderer.DrawText(text, 100, 370 + 30*4, mFont2, 0xffffffff );
} else {
		renderer.DrawText(text, 100, 370 + 30*4, mFont2, 0xFF4500ff );
}

<以下略>