UJMLサンプル048:物がたくさん落下する効果(放物線エフェクト)風付(2006/02/18)
今までのものに加え、←→で風向きを調節できるようにした。
ソースコードはファイルでダウンロードできる。↓
« UJMLサンプル047:物がたくさん落下する効果(放物線エフェクト) | メイン | UIEngine注目指数:2006/2/16[uiengine:15][ujml:4] »
今までのものに加え、←→で風向きを調節できるようにした。
ソースコードはファイルでダウンロードできる。↓
この記事のトラックバックURL:
https://www.typepad.com/services/trackback/6a00d8341c2e2e53ef00e55083ec958834
UJMLサンプル048:物がたくさん落下する効果(放物線エフェクト)風付を参照しているブログ:
この記事へのコメントは終了しました。
_msec()は連続で呼ぶと同じ値を返します。
その為、サンプルのプログラムでは全部重なって表示されてしまいます。
_srand(seed)のseed値が同じ場合は、同じ乱数(乱数と呼ばないと思うのですが、、)を返すようです。
投稿情報: potaka | 2006/05/24 16:27
potakaさん、コメントありがとうございます。そうなんですよ。_srand(seed)でseed値が同じときは同じ値になりますね。私はPCを複数台使っていますが、遅いマシンだと_msec()を連続で呼んでも違う値になるのですが高速なマシンだと同じ値になりました。そういうことも考慮して作らないといけませんね。言語リファレンスにも擬似乱数だと書いてありますが、これはクロスデバイスを前提にするが故の宿命だと思います。実装でカバーですね。
投稿情報: UIEngineだ | 2006/05/25 10:46
なるほど、PCの速度でエミュレータがそんなことになっていたとは、、、。
予想でしかありませんが、_msec()の使い方に工夫がいるのかな?と感じています。
つまり、_msec()のコールが一つ一つ別スレッドで呼ばれるようなUJMLの記述にするとか、、、。
何かわかりましたらご報告いたします。
投稿情報: potaka | 2006/05/26 10:44
> _msec()の使い方に工夫がいるのかな?
もう解決しているかもしれませんが、
mVal = _srand(_msec)
で初期化して、それ以降は
mVal = _srand(mVal);
で値を取得していくのが良いかと思っています。
私自身は、
<!--
max未満の整数(0または自然数)を返します。
-->
<function name="nextInt" type="int" visibility="public">
<parameters>
<var name="max" type="int" />
</parameters>
<script>
mSeed = _srand(mSeed);
</script>
<return><eval>mSeed % max</eval></return>
</function>
こんな感じの関数を定義したstate-machineを乱数取得用に作って利用しています。
投稿情報: とおりすがり | 2006/10/27 16:08