標準のrand関数は、乱数の質が低い可能性があります。
DXライブラリには、
GetRandという乱数を取得する関数があります。
コード:
int image = LoadGraph(".\\Media\\a.jpg");
// ループ
while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0) {
// 画面を初期化する
ClearDrawScreen();
for (int i = 0; i < 10; i++) {
int n = GetRand(640 - 1);
int m = GetRand(480 - 1);
DrawRotaGraph(n, m, 0.2, 0.2, image, TRUE);
}
// 裏画面の内容を表画面に反映させる
ScreenFlip();
}
上記のコードでは、毎フレーム画像を表示する位置が変わります。
位置を固定する場合は、事前に画像を表示する位置を決め、保存しておくといいでしょう。
コード:
int image = LoadGraph(".\\Media\\a.jpg");
// 画像を表示する位置を決める
int n[10], m[10];
for (int i = 0; i < 10; i++) {
n[i] = GetRand(640 - 1);
m[i] = GetRand(480 - 1);
}
// ループ
while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0) {
// 画面を初期化する
ClearDrawScreen();
// 画像をあらかじめ決めた位置に表示する
for (int i = 0; i < 10; i++) {
DrawRotaGraph(n[i], m[i], 0.2, 0.2, image, TRUE);
}
// 裏画面の内容を表画面に反映させる
ScreenFlip();
}
同じ数値10を何度を使用しているので、定数として定義して使用するとさらに良いでしょう。
コンパイルしてチェックしていないので、間違っていたらごめんなさい。