【cocos2dx】乱数を生成し、ランダムに値を取り出す方法

今回は、cocos2dxで利用できる乱数を紹介したいと思います。 cocos2dxのバージョンが上がって、新しい[c++]のライブラリが利用できるようになりました。その中にある[randm]を利用して乱数を実装します。

arc4random()を利用

以前にも一度ブログに書いたのですが、cocos2dxでランダムな数字を表示するために以下のような関数を利用していました。 [c]

//arc4random()を利用 //0~9の中からランダムに数字を取り出す int randomNum = arc4random()%10;

[/c]

これを利用すれば簡単に乱数が利用できます。

C++11 を利用する 

cocos2dxのバージョンが上がったことで[C++11]のライブラリが利用でできるようになりました。 その中に[]というモノがあります。 [c]

include

[/c]

これを利用することで「乱数」を作成することができます。 [c] std::random_device device;

std::mt19937 mt(device()); std::default_random_engine _engine = std::default_random_engine(mt());

[/c]

実際には上記で作成した[_engine]を利用します。

[c] //取り出す値を設定(int型) std::discrete_distribution distForNumbers = std::uniform_int_distribution dice(0,9);

//実際に利用 int rNumber = distForMember(_engine);

[/c]

これで先ほどのarc4random()の用に値が取り出せます。

分布生成器を使う

名前はややこしいですが、あらかじめ指定した範囲の中から「ランダム」で値を取り出します。 [c] //取り出す値を設定(int型) std::discrete_distribution distForNumbers = std::discrete_distribution{10,20,30,40,50,60};

//実際に利用 int rNumber = distForNumbers(engine);

[/c]

【参考】

Cocos2d-xスマートフォン2Dゲーム開発講座 Cocos2d-x 3対応 (SMART GAME DEVELOPER)Cocos2d-xスマートフォン2Dゲーム開発講座 Cocos2d-x 3対応 (SMART GAME DEVELOPER)
株式会社TKS2

翔泳社
売り上げランキング : 19609

Amazonで詳しく見る