ページ 11

リプレイについて

Posted: 2010年8月15日(日) 09:01
by シエル
お世話になります。

今作成している、シューティングゲームについてリプレイの機能を実装したいと思っています。
キーの入力データを保存しておいて、そのデータを後で読み込んで動かせば、
リプレイにはなると思っていますのが、気になったのは敵がランダムで撃ってくるショット
についてです。

ショットのいくつかのパターンで、ある一定の角度の範囲内でランダムに撃ってくるショットが
あるのですが、あとでリプレイを再生した際に、ランダムで撃ってしまうので、実際にプレイしたときとは
違う方向にショットが飛んでしまうと思います。

実際のプレイでそのランダムショットに当たって死亡した場合、リプレイ時には当たらなくなってしまう
というような状態になってしまうと思っているのですが、
このような場合どのように対応すればよろしいでしょうか?

実際のプレイ時と同じ乱数を発生させる方法はあるのでしょうか?

分かりにくかったらすみません。よろしくお願い致します。


追記:
書き忘れてました。
乱数については、rand()%100というような形で発生させてます。 画像

Re:リプレイについて

Posted: 2010年8月15日(日) 09:09
by yu
rand関数 でしたら srand関数 を使えば乱数のシードを設定することができます。
結局、ランダムな数も計算で出た値なのでシードが同じだと、同じパターンの値が出ます。

一応リンクも張っておきますね。
http://dixq.net/g/35.html


#以下、追記
リプレイのことですが、
ファイルに入力データ以外に乱数のシードを保存しておいて srand関数 に渡せば大丈夫だと思います。
しかし、静的な変数が何かしらの悪さをしてずれることがあるので注意しなければいけません。
画像

Re:リプレイについて

Posted: 2010年8月15日(日) 09:30
by シエル
yuさん!ありがとうございます!

srand関数って、こういう使い方できるんですね・・・!
しかも、ゲームプログラミングの館にあったんですね。すみません。

これで後は何とかできそうです!解決にいたします!