[過去ログ]
【3Dゲームエンジン】Unity 4 [転載禁止]©2ch.net (994レス)
【3Dゲームエンジン】Unity 4 [転載禁止]©2ch.net http://peace.5ch.net/test/read.cgi/gamedev/1434386114/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
540: 名前は開発中のものです。 [sage] 2015/07/26(日) 11:06:32.29 ID:D3ATScL/ >>536 PureなRogue Likeなら乱数発生器を自前で用意して乱数の使い方を切り分ける事で保存データを少なくすることができる たとえばRNG方式ならX,Y,Z,Tの四変数(ビット数は実装者による)を保存することで達成できる。(詳細が知りたいならRNG Random Generatorとか Xor Shift Random Generatorでググれ) さて、ローグライクと言う事から次のことがうかがえる *各階層は完全に乱数で生成される つまり各階層事に乱数のシードが生成できれば階層の生成は可能となる そこで階層ごとのシードを決定する乱数ジェネレータと階層を生成を乱数ジェネレータの2つを用意することで保存すべきものは階層事のシード生成乱数ジェネレータの4変数で済む。 すなわち全階層を生成するための乱数シードと各階層の為の乱数シードの2つである、任意の階層を生成するにはループで回して全階層の乱数ジェネレータが各階層の乱数ジェネレータへシードを供給すればよい。 次にアプリケーションが終了したときに保存すべき情報について考える 1:再開するときは階層単位である 2:再開するときは元の位置情報を含む 1の場合は終了時に保存するのは階層に突入したときの保持アイテムと乱数のシードのみだ 2の場合はその階層の生成に必要な乱数シードとその階層ですでに倒した敵と取得したアイテムのリストと現在位置と言う事になる ゲームであれば突然の終了(クラッシュなど)の為に1を階層突破時に自動保存し、2を為にアプリケーション異常終了時に保存する 特に2の保存で重要視するのは既に倒した敵と取得済みのアイテムである、これの保存は敵の再出現とアイテムの二重取りを防ぐようにする事だ #と論文調で書いてみるテスト #まぁ1を保存しておいて1から再実行でも問題ないんじゃないかな http://peace.5ch.net/test/read.cgi/gamedev/1434386114/540
551: 名前は開発中のものです。 [sage] 2015/07/26(日) 18:14:10.17 ID:D3ATScL/ >>543 C#のSystem.ActionとかSystem.Funcの配列を使うと良いよ Actionはvoidな関数、Funcは戻り値の型を指定して使う // actionの配列 private System.Action<string> [] actionList; // actionへ関数の設定 void Start () { actionList = new System.Action<string>[10]; actionList[0] = Action1; actionList[1] = Action2; // more actions } // iの値で何かを実行 void ExecuteAction(int i) { actionList[i](i.ToString()); } void Action1(string val) { Debug.Log("Action1:"+val); } void Action2(string val) { Debug.Log("Action2:"+val); } // and many funcs http://peace.5ch.net/test/read.cgi/gamedev/1434386114/551
558: 名前は開発中のものです。 [sage] 2015/07/26(日) 20:32:31.20 ID:D3ATScL/ >>557 んじゃぁSystem.Collections.GenericのDictionary<Key,Value>使うと良い、ただ初期化で全部用意しないと行けないのは本当 Dictionary<string,System.Action > actionMap = new Dictionary<string,System.Action>(); //init actionMap["A"] = someVoidFunc1; actionMap["B"] = someVoidFunc2; ... void someVoidFunc1() { } void someVoidFunc2() {} //使う時 System.Action act = actionMap[xxx]; act(); http://peace.5ch.net/test/read.cgi/gamedev/1434386114/558
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.031s