31. ランダムな数の作り方
ランダムな数を生成するには普通stdlib.hのrand()関数を利用しますよね。
しかしDXライブラリにはもっとよい乱数の生成関数があります。rand()関数は、ランダムな数に見えて実は全然
ランダムな数ではありません。初期値を設定しないと、毎回同じ値がでてしまいます。
rand()関数ででてくる数は、毎回決まっていて、
41 , 18467 , 6334 , 26500 , 19169 , 15724,,,,,,,毎回この値が出ます。
しかしDXライブラリでは、標準でいつも違った乱数が出ます。
GetRand()関数を使います。0〜引数に持たせたint型の数値までのどれかの値をリターンで返します。
例えば
x = GetRand(10) ; とすれば、xには0〜10のどれかの値が入ります。
また、乱数を初期化したいときは初期化関数SRand()を利用しましょう。初期化については32節で説明します。
では出たら目な位置に、画像を100枚描画するプログラムを書いてみます。
このプログラムは横640ピクセル、縦480ピクセルの画面である事を利用しています。
#include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){ ChangeWindowMode( TRUE ) ; // ウインドウモードに変更 if( DxLib_Init() == -1 ) return -1; //DXライブラリ初期化 エラーが起きたら終了 int i,image[16]; LoadDivGraph( "char.png" , 16 , 4 , 4 , 32 , 32 , image ) ; //画像を分割してimage配列に保存 for(i=0;i<100;i++) DrawGraph(GetRand(640),GetRand(480),image[4],TRUE);//ランダムな場所に画像を描写 WaitKey(); // 何かキー入力があるまで待つ DxLib_End() ;// DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 }
実行結果
- Remical Soft -