【cocos2dx】ランダムな数字を取り出す。

ゲーム内の、例えば、敵などを行動させる時には、Playerの意図しない行動をとらせると面白くなります。 この場合は、色々なパラメーター(時間や自分のライフ、Playerとの距離)によって動きを変えたりするのですが、完全にランダムに行動をさせる時があります。 今回は、その際に利用できそうなランダムな数字を利用する方法を「cocos2dx」で、実装をしたいと思います。

ここまで、難しく書いていますが、実際のコードは、ごくわずかです。

【追記 10/29】 ランダムな数字を取得する場合、もっと簡単な方法がありましたので、記事に追記をしています。

コード

実際のコードは以下のようになります。 [c]

srand*1;

int randNum = rand()%10;

[/c]

コード解説

実際にランダムな数字(int型)を取り出す際にはrand()を利用します。 例えば、0~3までの中の数字をランダムに取り出したいときには以下の様なコードになります。

[c]

//0~3を取り出すには4 int randNum = rand()%4;

[/c]

rand()の後に%(数字)があり、この数字の範囲内の値が取り出せます。

ただ、これでランダムな数字を取り出すことができますが、繰り返し利用する場合、いつも同じ数字になってしまいます。 これではいけないので、srand()を利用します。

[c]

srand*2;

[/c]

取り出す前に、以下のsrand()をつければ、rand()が呼び出されるごとに取り出される数字は変わってきます。

[参考]

追記 10/29

twitterで、「ランダムな数字を取り出す」もっと簡単な方法を教えてもらいましたので、その方法を追加して記述をします。 以下の一行のコードを書けば、上記で書いた2行のコードに該当しますので、とても簡単です。

[c]

//arc4random()を利用すれば、簡単です。
int randomNum = arc4random()%10;

[/c]

%の後に、取り出したい数字の範囲を指定します。

*1:unsigned int)time(NULL

*2:unsigned int)time(NULL