現在クイズゲームを作っているのですが正解したとき10点を加算したいですがどうも0という文字が消えなく0の上に10が描画され重なって表示されてしまいます
問題文や選択肢は繰り返すときに全ての画像を上から被せて重ならないようにしているのですが得点も同様に同じ方法でやればいいのでしょうか?
#include "DxLib.h"
#include "Game.h"
#include "MoviePlayer.h"
//クイズの問題数
int mon = 1;
//構造体
struct mondai_data {
char mon[80];
};
typedef mondai_data data1;
struct sentaku_data {
char sen1[20];
char sen2[20];
char sen3[20];
char sen4[20];
char janru[20];
int ans;
};
typedef sentaku_data data2;
void Game() {
//構造体で問題と選択肢の設定
mondai_data data1[] = {
"47都道府県のうち最も北にあるのは?",
};
sentaku_data data2[] = {
//雑学
{ "東京都","秋田県","北海道","大阪府","雑学",3 },
};
SetFontSize(38);
ChangeFont("ニタラゴルイカ教漢-07");
int a = 0, b = 0, i, j = 0, r = 0;
int s = GetNowCount();
int White = GetColor(255, 255, 255);
int toku[9];
//画像読み込み
int Handle02 = LoadGraph("Debug/images/背景2.png");
int Handle03 = LoadGraph("Debug/images/出題用2.png");
int Handle04 = LoadGraph("Debug/images/出題額縁.png");
int Handle05 = LoadGraph("Debug/images/選択肢.png");
int Handle06 = LoadGraph("Debug/images/選択表示.png");
//動画読み込み
int MovieHandle00 = LoadGraph("Debug/images/正解アニメ.mp4");
PlayMovieToGraph(MovieHandle00);
ChangeFontType(DX_FONTTYPE_ANTIALIASING);
i = 0;
do {
DrawGraph(0, 0, Handle02, TRUE);
SetDrawBlendMode(DX_BLENDMODE_ALPHA, 128); //ブレンドモードをα(128/255)に設定
DrawGraph(443, 30, Handle03, TRUE);
SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 0);
r = GetRand(1);
DrawGraph(443, 30, Handle04, TRUE);
DrawGraph(550, 520, Handle05, TRUE);
DrawFormatString(1500, 120, GetColor(255, 255, 255), "%d点", a);
DrawFormatString(620, 120, GetColor(255, 255, 255), data1[i].mon);
DrawFormatString(780, 615, GetColor(38, 38, 38), data2[i].sen1);
DrawFormatString(780, 745, GetColor(38, 38, 38), data2[i].sen2);
DrawFormatString(780, 877, GetColor(38, 38, 38), data2[i].sen3);
DrawFormatString(780, 999, GetColor(38, 38, 38), data2[i].sen4);
DrawFormatString(150, 120, GetColor(38, 38, 38), data2[i].janru);
while (1) {
//キー入力判定
if (CheckHitKey(KEY_INPUT_1) == 1) {
j = 1;
DrawGraph(860, 570, Handle06, TRUE);
WaitTimer(2000);
break;
}
else if (CheckHitKey(KEY_INPUT_2) == 1) {
j = 2;
DrawGraph(860, 700, Handle06, TRUE);
WaitTimer(2000);
break;
}
else if (CheckHitKey(KEY_INPUT_3) == 1) {
j = 3;
DrawGraph(860, 830, Handle06, TRUE);
WaitTimer(2000);
break;
}
else if (CheckHitKey(KEY_INPUT_4) == 1) {
j = 4;
DrawGraph(860, 960, Handle06, TRUE);
WaitTimer(2000);
break;
}
}
// 正解か不正解か判定
if (j == data2[i].ans) {
a = a + 10;
DrawFormatString(1500, 120, GetColor(255, 255, 255), "%d点", a);
MoviePlayer();
}
else {
DrawString(620, 400, "不正解", GetColor(255, 255, 255));
}
//3秒経ってから次の問題に移行
WaitTimer(3000);
i++;
} while (i < 1);
}