問題は、座標の位置に半径10cmの円を描画するというものです。
ひとつ前の課題で配列にクリックしたときの座標を設定するということをしました。
これです↓
if (g_pInput->IsMouseKeyPush(MOFMOUSE_LBUTTON)) {
//記録済みマウスの座標を1つ後ろにずらす
for (int i = HISTORY_MAX - 1; i > 0; i--) {
hist_mx[i] = hist_mx[i-1];
hist_my[i] = hist_my[i-1];
}
//配列の先頭に現在のマウス座標を記録
hist_mx[0] = mx;
hist_my[0] = my;
//クリック回数を加算
clickCount++;
}
mx,myはクリックしたときの座標 HISTORY_MAX は10です。
今回の問題文をそのまま書くと
クリックをしていない場合hist_mx/hist_myの配列には描くべき座標はいっていません。
一回クリックした時点でhist_mx[0]/hist_my[0]に記録されます。
そのため、単純に配列の要素分を繰り返せばよいのではなく配列要素数を超えない範囲で、クリックした回数分繰り返す必要があります。配列要素数は定数HISTORY_MAXに、クリック回数は変数clickCount記録されています。
<>
描画はfor文を使う、描画は
CGraphicsUtilities::RenderCircle(hist_mx[?], hist_my[?], 10, MOF_XRGB(0, 255, 0));を使う
//演習4&課題4:クリックした座標位置に円を描画
int a;
for (a = clickCount; a < HISTORY_MAX; a++)
{
CGraphicsUtilities::RenderCircle(hist_mx[a-1], hist_my[a-1], 10, MOF_XRGB(0, 255, 0));
}
初めて掲示板を使うので質問内容がわかりにくかったらすみません。