リプレイについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
シエル

リプレイについて

#1

投稿記事 by シエル » 15年前

お世話になります。

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

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

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

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

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


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

yu

Re:リプレイについて

#2

投稿記事 by yu » 15年前

rand関数 でしたら srand関数 を使えば乱数のシードを設定することができます。
結局、ランダムな数も計算で出た値なのでシードが同じだと、同じパターンの値が出ます。

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


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

シエル

Re:リプレイについて

#3

投稿記事 by シエル » 15年前

yuさん!ありがとうございます!

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

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

閉鎖

“C言語何でも質問掲示板” へ戻る