[過去ログ] Delphiゲームプログラミング相談室 (976レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
829(1): 名前は開発中のものです。 [] 2006/04/29(土) 13:48:10 ID:P3tEKmOP(1/4) AAS
「タイトル→ゲーム→ED」とかのシーン遷移ってどうやってる?
じゃんけんゲーみたいな単純なもんなら行き当たりばったりでなんとかなるけど、
それなりの規模のゲームを目指すなら、咄嗟の拡張に強いシステムを組まなくちゃいけないよな
やっぱりコーディング前に仕様書みたいなもの書いたりするんだろうか
どうよ?
832: 名前は開発中のものです。 [sage] 2006/04/29(土) 14:34:17 ID:P3tEKmOP(2/4) AAS
>>830830(1): 名前は開発中のものです。 [sage] 2006/04/29(土) 14:07:38 ID:JeSIblMt(1/2) AAS
自分は各シーンクラスと
そのシーンを全て持たせた管理クラスを作ってる。
ループから呼び出すのは管理クラスで管理クラス内でシーンごとに分岐。
シーン内で違うシーンへの移行フラグが立ったら、
管理クラスがそれを受け取って…みたいな。
一般的なやり方だと思ってやってたんだけど違ったらスマン
>>831831(1): 名前は開発中のものです。 [sage] 2006/04/29(土) 14:10:34 ID:p+54dQLt(1) AAS
おいらの場合は、Stateパターンで。
次の状態をクラス型で返して状態遷移。
次は、そのクラス型を元にStateを生成。
共用するデータは、管理クラスに持たせる。
でも、あまりスマートじゃない・・・
なるほど。
やっぱ管理クラス内でシーンクラスを遷移させるのが分かりやすいのかも。
拡張するのも簡単だし。
831氏の場合は、管理クラスがシーンクラスを直接見てるわけじゃなくて、
シーンクラスが廃棄されるときに次のシーンクラスを作成する、って感じかな。
おれは最近TListのタスクってやつを使い始めた。
例えばstgの弾とか爆発とか、ゲーム内で作成するオブジェクトの数が不定な場合は便利だー。
835: ぬ [sage] 2006/04/29(土) 18:16:22 ID:P3tEKmOP(3/4) AAS
みんなレスサンクスですよ。
やっぱそれぞれ一長一短があるし、作るもんによって実装方法は違うよなー
ところでQD使ってて、小数の割り算の精度が悪くなる原因がわかった。
DirectXの初期化部分でFPU設定が変わっちゃうからみたい。
CreateDeviceの呼び出し時にD3DCREATE_FPU_PRESERVEを加えたら直った。
QDのCreateDeviceはこれ付いてないみたいだから、小数の計算がなんかへんだなーと思ったら
っていうか既出ですか?
838: ぬ [sage] 2006/04/29(土) 23:30:37 ID:P3tEKmOP(4/4) AAS
GetPrecisionModeでFPUの精度を調べてみたら、
DirectX初期化前 → pmExtended
DirectX初期化後 → pmSingle
単精度になってた。
SetPrecisionMode(pmExtended);を実行したらまた拡張精度に戻せるけど、
戻しちゃうとDirect3Dのパフォーマンスが落ちるらしい。
どうしたらいいんだろう。
以下検証こーど。DGCaradをフォームに貼り付けてから実行。
uses Math;
procedure TForm1.FormCreate(Sender: TObject);
var
i, j: Cardinal;
s: Extended;
begin
//コメントアウトすると計算結果が変わる?
//SetPrecisionMode(pmExtended);
i := 2;
j := 5;
s := i / j;
Form1.caption := FloatToStr(s);
end;
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.035s