[過去ログ]
物凄い勢いで誰かが質問に答えるスレ@ゲーム製作技術 (1001レス)
物凄い勢いで誰かが質問に答えるスレ@ゲーム製作技術 http://game.5ch.net/test/read.cgi/gamedev/1005204354/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
967: 名前は開発中のものです。 [age] 02/06/28 13:40 ID:??? GameProgrammingGemsのセクション1.3 自動シングルトンユーティリティ で、下のコードがなにをやってるのかわかりません。誰か説明してくれませんか? template<typename T> class Singleton { static T* ms_Singleton; public: Singleton() { int offset = (int)(T*)1 - (int)(Singleton<T>*)(T*)1; ms_Singleton = (T*)((int)this + offset); } ... }: クラステンプレート自体のサイズとTのサイズを足したものをシングルトンに 割り当ててるのかな?と思いますが、newした時点で割り当てられたアドレスの 後方を指してるような気がして不安です。よろしくお願いします。 http://game.5ch.net/test/read.cgi/gamedev/1005204354/967
968: 名前は開発中のものです。 [sage] 02/06/28 18:17 ID:??? >>965 例えばxファイルなんかで、と言う意味です。 http://game.5ch.net/test/read.cgi/gamedev/1005204354/968
969: 名前は開発中のものです。 [sage] 02/06/28 19:43 ID:??? >>967 operator newなんかがオーバーライドされてない? http://game.5ch.net/test/read.cgi/gamedev/1005204354/969
970: 名前は開発中のものです。 [sage] 02/06/28 19:48 ID:??? >>968 もしかしてたとえばパンチのモーションなら 腕を引いたモデル 伸ばしている途中のモデル 伸びきったモデル 戻しているモデル があると思っていない? 2Dならそれで正解だけど、3Dだとモデルとモーションデータは 別物だよ。(100%そうだとも言わんが・・・) モーションデータは各タイミングでどの関節をどの方向にどのくらい曲げているかという データの集合として作られることが多い。 全てのタイミングのモーションを用意するのはまず不可能なので、途中の モーションはプラグラム的に補完したりする。 http://game.5ch.net/test/read.cgi/gamedev/1005204354/970
971: 名前は開発中のものです。 [sage] 02/06/28 19:59 ID:??? >>967 C++の内部構造はよくわからないが offsetってのは、その名の通りSingleton<T>クラスのインスタンスのポインタから Tクラスのインスタンスのポインタへのオフセットだろう。 1って数字は問題じゃない。いくつでもいい、 0で無い事に意味がある。本の受け売りだけどな。 んで、 (T*)((int)this + offset); は、新たにSingleton<T>クラスのインスタンスが生成されたとして そのSingleton<T>のインスタンスに属する?Tクラスのインスタンスの位置を 求めてる訳だ。 それをスタティックの箱に入れてやると。 つまりms_Singletonには、最後に生成されたTクラスのインスタンスのポインタが 入ることになる。 ・・・と思う。間違ってたら誰かフォローよろしこ。 http://game.5ch.net/test/read.cgi/gamedev/1005204354/971
972: 名前は開発中のものです。 [sage] 02/06/28 20:12 ID:??? >>970 ??? 一枚のxファイルにアニメーションをするために必要なデータ全てが含まれているわけではないですか? もちろんそれを解釈して動かすのはプログラムですが。 http://game.5ch.net/test/read.cgi/gamedev/1005204354/972
973: 967 [sage] 02/06/28 21:27 ID:??? 本当に回答どうもありがとうございました >>969 いえ、本の中ではオーバーライドされていませんでした。 >>971 試しに2,3のクラスで使用してみたところ、どうもoffsetの値は 0になるようでした。 説明不足だったので申し訳ありませんがSingletonクラスは たとえば class CTextureMgr: public ISingleton<CTextureMgr> のように使うようです。はっきり言って私の頭ではこれだけでもチンプンカンプンですが、 無理やり自分を納得させるため次のように考えてみました。 クラステンプレートはコンパイル時に展開?されるために、本来ならば ベタに同じことを書いたクラスのサイズと一致しなければならないが、 コンパイラによってはそうならないかもしれない。 そのための保険としてオフセットを求め、それをスタティックな変数(シングルトン) に代入している。 …思いっきり見当はずれなことを言ってるかもしれませんね http://game.5ch.net/test/read.cgi/gamedev/1005204354/973
974: 八神庵 [] 02/06/28 22:45 ID:gLc5XGq6 今週のファミ通の料金受取人払いハガキのあるところに たしか「ジセコン」とか書いているページがあったと思います できたら、そこのURL教えてくれませんか? http://game.5ch.net/test/read.cgi/gamedev/1005204354/974
975: 名前は開発中のものです。 [sage] 02/06/28 23:13 ID:??? >972 そうですな。 彼はアニメつきのXファイルの中身をみたことないと思われ。 http://game.5ch.net/test/read.cgi/gamedev/1005204354/975
976: 名前は開発中のものです。 [sage] 02/06/28 23:37 ID:??? >>973 簡単だよ。 class A : public Base, public ISingleton<A> { }; この場合を考えてみな。 http://game.5ch.net/test/read.cgi/gamedev/1005204354/976
977: 名前は開発中のものです。 [sage] 02/06/28 23:55 ID:??? 同人でゲーム(たぶんありきたりなアドベンチャー系)を作ろうとしているのですが、どんな言語が一番向いてますか? とりあえず、VBに手を出してみたんですが、いまいち思ったとおりのものが作れそうに無いです。 http://game.5ch.net/test/read.cgi/gamedev/1005204354/977
978: 名前は開発中のものです。 [sage] 02/06/29 00:08 ID:??? おまえにはコミックメーカーで十分だ http://game.5ch.net/test/read.cgi/gamedev/1005204354/978
979: 名前は開発中のものです。 [sage] 02/06/29 00:13 ID:??? きりきり http://game.5ch.net/test/read.cgi/gamedev/1005204354/979
980: 名前は開発中のものです。 [sage] 02/06/29 00:14 ID:??? >>978 こみっくめーかー? なんぢゃそりゃ? http://game.5ch.net/test/read.cgi/gamedev/1005204354/980
981: 名前は開発中のものです。 [sage] 02/06/29 00:19 ID:??? ツールでいいのでは http://game.5ch.net/test/read.cgi/gamedev/1005204354/981
982: 名前は開発中のものです。 [sage] 02/06/29 00:22 ID:??? ツールを使いたくないというのは傲慢でしょうか? http://game.5ch.net/test/read.cgi/gamedev/1005204354/982
983: 名前は開発中のものです。 [sage] 02/06/29 00:27 ID:??? は?意味不明。お前ホンマにゲーム作りたいんかと小一時間 http://game.5ch.net/test/read.cgi/gamedev/1005204354/983
984: 名前は開発中のものです。 [sage] 02/06/29 00:27 ID:??? >>982 ゲームを作りたいのが言語をマスターしたいのかどっちなんだよ(w http://game.5ch.net/test/read.cgi/gamedev/1005204354/984
985: 名前は開発中のものです。 [sage] 02/06/29 00:30 ID:??? すいません、言い方が曖昧でしたね。 ゲームを作れる言語をマスターしたいのです。 http://game.5ch.net/test/read.cgi/gamedev/1005204354/985
986: 名前は開発中のものです。 [sage] 02/06/29 00:36 ID:??? >>985 人に聞く前に手を動かせ http://game.5ch.net/test/read.cgi/gamedev/1005204354/986
987: 名前は開発中のものです。 [sage] 02/06/29 00:36 ID:??? VBだろうがアセンブリだろうがLISPだろうがゲームは作れる好きにしろ。 http://game.5ch.net/test/read.cgi/gamedev/1005204354/987
988: 名前は開発中のものです。 [sage] 02/06/29 00:37 ID:??? VBでアドベンチャー作るのにどのへんが思い通りにできないのか http://game.5ch.net/test/read.cgi/gamedev/1005204354/988
989: 名前は開発中のものです。 [] 02/06/29 00:37 ID:uNPXzVbU >>976 すんまそーん、わからんす。 後学の為に教えて。 http://game.5ch.net/test/read.cgi/gamedev/1005204354/989
990: 名前は開発中のものです。 [sage] 02/06/29 00:40 ID:??? …、 出直してきます。 http://game.5ch.net/test/read.cgi/gamedev/1005204354/990
991: 名前は開発中のものです。 [sage] 02/06/29 00:41 ID:??? >>989 多重継承した場合、 アップキャストしたときにベースポインタ(this)がずれるから、 そのoffset値を算出している。 http://game.5ch.net/test/read.cgi/gamedev/1005204354/991
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 10 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.025s