トップページ > 記事閲覧
GetRandが0しか返さない?
名前:もじゃっと 日時: 2019/07/19 16:41

iOS版DXライブラリの GetDand 関数について質問します。 struct { int x,y; int r; } dot[128]; ... void init(){ for(int i = 0; i < 128 ; ++i){ dot[i].x = GetRand(512) - 256; dot[i].y = GetRand(512) - 256; dot[i].r = GetRand(32) - 16; } } こんな感じのコードを実行したところ、40個目くらいまでのdotのメンバ変数が -256,-256,-16 と、どうやら GetRand が 0 しか返していないようなのです。 途中からはきちんと想定した通りの値が代入されます。 現状では、init() の前に100回くらいループで GetRand(0) を実行して対策しています。 私のコードに問題があるとすれば、どう改善すべきでしょうか。 ご教授お願いします。 macOS 10.13.6 + Xcode 10.1(10B61) iPad(6th)
メンテ

Page: 1 |

Re: GetRandが0しか返さない? ( No.1 )
名前:もじゃっと 日時:2019/07/19 16:43

(一行目 打ち間違いです。)
メンテ
Re: GetRandが0しか返さない? ( No.2 )
名前:ROPs 日時:2019/07/20 07:07

for文の前にSRand(GetNowCount());とすると適切に乱数を取得できます。
メンテ
Re: GetRandが0しか返さない? ( No.3 )
名前:もじゃっと(解決済み) 日時:2019/07/20 09:57

試してみたところ、正常に乱数を取得できました。 リファレンスに"DXライブラリでは標準でこの処理を行う"とあったので、勘違いして試しておりませんでした... ありがとうございました
メンテ
Re: GetRandが0しか返さない? ( No.4 )
名前:管理人(解決済み) 日時:2019/07/20 20:52

すみません、iOS版以外は内部で SRand(GetNowCount()); を実行しているのですが、 iOS版だけは SRand(GetNowCount()); を実行する処理が抜けていました 修正版をアップしましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibiOSTest.zip // iOS版
メンテ
Re: GetRandが0しか返さない? ( No.5 )
名前:もじゃっと(解決済み) 日時:2019/07/21 10:44

SRand なしでもきちんと乱数を取得できるようになりました。 ありがとうございます
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存