前提
DXライブラリを使って射撃ゲームを作成しています。
C++初心者です。
実現したいこと
スコアをランキング画面に反映させたい
発生している問題・エラーメッセージ
配列の中の全部の要素にスコアが反映されてしまいます。
該当のソースコード(一部抜粋)
C++
1void Ranking_Draw() { 2 int rankX = 50, rankY = 150; // 〇位の座標 3 int scoreX = 70, scoreY = 150; // スコアの座標 4 // スコアランキング 1位から5位まで表示 5 static int rank[5] = {}; 6 7 8 if (rank[0] < score) { 9 rank[0] = score; 10 } 11 else if (rank[1] < score) { 12 rank[1] = score; 13 } 14 else if (rank[2] < score) { 15 rank[2] = score; 16 } 17 else if (rank[3] < score) { 18 rank[3] = score; 19 } 20 else if (rank[4] < score) { 21 rank[4] = score; 22 } 23 24 // バブルソート(降順) 25 int i, j, buf; 26 27 for (i = 0; i < 5; i++) 28 { 29 for (j = 0; j < 4; j++) 30 { 31 if (rank[j] < rank[j + 1]) 32 { 33 buf = rank[j]; 34 rank[j] = rank[j + 1]; 35 rank[j + 1] = buf; 36 } 37 } 38 } 39 40 // ランキング表示 41 int x = 1; 42 SetFontSize(10); 43 DrawString(200, 110, "ランキング画面です。", GetColor(253, 222, 165)); 44 for (int i = 0; i < 5; i++) { 45 DrawFormatString(rankX, rankY, GetColor(253, 222, 165), "%d", x); 46 DrawFormatString(scoreX, scoreY, GetColor(255, 255, 255), "%d", rank[i]); 47 rankY += 30; 48 scoreY += 30; 49 x += 1; 50 } 51 52 DrawString(0, 450, "Bキーを押すとメニュー画面に戻ります。", GetColor(255, 255, 255)); 53 54 55}

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/01/17 05:54
2023/01/18 00:58
2023/01/18 01:20
2023/01/18 01:28
2023/01/18 02:04
2023/01/18 05:56
2023/01/18 06:03