[過去ログ]
ゲームプログラミング相談室【Part5】 (970レス)
ゲームプログラミング相談室【Part5】 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
700: 名前は開発中のものです。 [sage] 03/12/19 13:35 ID:jxyh5RLW >>1-699 スマートじゃないし、美しくない。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/700
701: 685 [sage] 03/12/19 17:01 ID:Uwe5ZE6F >>686〜699 色々な意見に感謝です。はい。 とりあえず、連結してインデックスを先頭につける方法から試して行こうと思います。 ところで、 「リソースファイルに全部まとめたらLoadBitmap関数もそのまま使えるじゃん!」 と、今さっき思いついた僕も冴えてますよね? 才能ありますよね? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/701
702: 名前は開発中のものです。 [sage] 03/12/19 19:23 ID:cM280cof 自分で思いつけたのならOK。褒めて欲しそうなそぶりはNG。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/702
703: 名前は開発中のものです。 [sage] 03/12/20 01:44 ID:myl7qCty ちょっと待て、 質問したのは俺なのに何故あんたが話をまとめるんだよ こっちは今出てきた語句を必死でググってる最中なんだから、 まとめるのは俺が理解した後にからにして下さいよ http://echo.5ch.net/test/read.cgi/gamedev/1036410116/703
704: 名前は開発中のものです。 [sage] 03/12/20 01:51 ID:69JYnftb >>703 まとめたいお年頃、えらぶりたいお年頃なんだから、スルーしてやれ。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/704
705: 名前は開発中のものです。 [sage] 03/12/20 02:33 ID:WL2IRYiU 元々の質問が、まとめるにはどうするかって話だからねえ オチがよろしいようで http://echo.5ch.net/test/read.cgi/gamedev/1036410116/705
706: 名前は開発中のものです。 [sage] 03/12/20 05:52 ID:kVrm9apv >>683 の質問は >>684 で終わってる 話しかけられたら反応くらいしろよ http://echo.5ch.net/test/read.cgi/gamedev/1036410116/706
707: 名前は開発中のものです。 [sage] 03/12/20 10:24 ID:rIwyOINw いま、PS2で動的型情報を自前で作るかそれともtype_infoに頼るかで迷ってるんだけど、 だれかPS2でtype_infoに頼った設計をした人いない? どれだけメモリを圧迫するものなのか知りたい。 OOスレで訊いたんだけど、こっちに誘導されたので http://echo.5ch.net/test/read.cgi/gamedev/1036410116/707
708: 707 [] 03/12/20 10:30 ID:rIwyOINw ちなみにコンパイラはCW。多分gccでのケースでも大差はない(CWでもgcc用のライブラリを つかってるからtype_infoの形式は共通だろう、と予測)と思うので、どっちの話でもいいから 聞きたいです。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/708
709: 名前は開発中のものです。 [] 03/12/20 11:01 ID:z6nXo3Ik >>707 http://tt.sakura.ne.jp/~suzu/tips/rtti.html はいな! http://echo.5ch.net/test/read.cgi/gamedev/1036410116/709
710: 名前は開発中のものです。 [sage] 03/12/20 11:20 ID:kVrm9apv >>709 マジですか・・・ VCでメインループに使ってる・・・_| ̄|○ http://echo.5ch.net/test/read.cgi/gamedev/1036410116/710
711: 名前は開発中のものです。 [sage] 03/12/20 11:22 ID:kVrm9apv ま、CPUごり押しでいきますか・・・ははは http://echo.5ch.net/test/read.cgi/gamedev/1036410116/711
712: 名前は開発中のものです。 [] 03/12/20 11:23 ID:z6nXo3Ik >>710 メインループなんて別に速度要求されないんじゃ? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/712
713: 名前は開発中のものです。 [sage] 03/12/20 22:20 ID:myl7qCty 例えばスプライトを使ったシュ−ティングゲームの 敵がやられたときの爆発するエフェクトを再現したいんだけど、 「弾と敵機の当たり判定があり、 当たってれば爆発するエフェクトを起こす」というのは判ってる。 そして、当たり判定処理等と描画処理を一緒に書きたくない、 後で一斉に描画処理をしたい時はどんな処理をすれば良いの? 「エフェクトを起こす」という処理をスタックして順番に描画すれば良いと思うけど、 他に良い方法はないですか? この方法だとスタック出きる数に限界があるし、 チェインファイルをつかって動的にスタックしていっても動作が遅くなるし、 他に良い方法はないですか? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/713
714: 名前は開発中のものです。 [sage] 03/12/20 22:29 ID:Oe+zcBCM >>713 いろいろやり方あると思うけど それを考えるのが楽しいんだよねぇ。 >スタック出きる数に限界があるし 昔のPCならいざ知らず今のPCなら気にしなくていいんでは? >チェインファイルをつかって動的にスタックしていっても動作が遅くなるし これがよー分からん??? とりあえずドバッと最も多く必要となる分+α確保してしまうのはどうなのか? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/714
715: 名前は開発中のものです。 [sage] 03/12/20 22:31 ID:woom4CTb エフェクトの処理自体がランダムなわけではないのだから、 現在進行中のエフェクトカウントが一つあれば、途中経過をスタックする必要はない。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/715
716: 名前は開発中のものです。 [sage] 03/12/20 22:32 ID:Oe+zcBCM ドバッと最も多く必要となる分+α確保する Q メモリがもったいないじゃん! A 画像をメモリに確保することに比べれば僅かだ Q 速度は遅くならないの? A ならんならん(w http://echo.5ch.net/test/read.cgi/gamedev/1036410116/716
717: 名前は開発中のものです。 [sage] 03/12/20 22:42 ID:lyu5JuX1 >>713 >そして、当たり判定処理等と描画処理を一緒に書きたくない、 >後で一斉に描画処理をしたい時はどんな処理をすれば良いの? 当たったときに爆発オブジェクトを生成して、画面上のキャラを管理しているリストに追加。 んで、描画処理はリストを順にたどって追加されている各オブジェクトの描画処理を呼び 出すんで、自動的に爆発オブジェクトの描画処理も呼ばれる。 とかそんな感じでやってるよ。 描画を分けてるとフレームスキップとか簡単に出来ていいね。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/717
718: 名前は開発中のものです。 [sage] 03/12/20 23:24 ID:myl7qCty サンクス。 自分はゲームプログラミング始めて間も無いので、 こういう初歩的な事が判ってないのが辛いです。 ほとんどがネットで調べて来た事なんで間違ってたり誤解してたりな事が多々あるんですが、 レスを参考にしてなんとかがんばってもうちょっと良い方法が無いか考えてみます。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/718
719: 707 [sage] 03/12/20 23:26 ID:rIwyOINw >>709 dクス >どうやら、小さいプロジェクトならあまり差はないようです。逆に大きいプロジェクトの場合、 >数%程度の増加は気にならないでしょう。 どうやら大丈夫そうですな http://echo.5ch.net/test/read.cgi/gamedev/1036410116/719
720: 名前は開発中のものです。 [sage] 03/12/22 19:09 ID:qsJtcoHW DirectGraphicsでカメラの前進・後退・左右回転・上下回転をさせたいのですが 上下回転させると視点のzも変えなければ真上や真下を向けないのでzをマイナスしてyを+してます。 でもそうするとzが変わるので上や下を見たまま前進・後退すると移動量が減ってしまいます。 何か良い方法無いでしょうか。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/720
721: 名前は開発中のものです。 [sage] 03/12/22 19:11 ID:Q6Mm9LXS >上下回転させると視点のzも変えなければ真上や真下を向けないので カメラの中心位置が間違っているか、行列をかける順番の誤り。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/721
722: 名前は開発中のものです。 [sage] 03/12/22 19:24 ID:qsJtcoHW >>721 カメラの中心位置とはカメラ自体の座標でしょうか? D3DXVECTOR3(0.0f, 2.0f, -10.0f)を初期位置として前進・後退のたびにzとxを それぞれ向いてる角度のsin・cos分をプラスしていってます。 この方法に問題あるでしょうか? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/722
723: 名前は開発中のものです。 [sage] 03/12/22 20:06 ID:Q6Mm9LXS カメラの中心を(0,0,0)の状態で回転をかけた後に、 移動させないと、当然正常に回転できない。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/723
724: 名前は開発中のものです。 [sage] 03/12/22 21:47 ID:qsJtcoHW >>723 レス遅くなって申し訳ありません。あと言葉足らずでしたが、 カメラの回転はカメラ位置は固定で視点を左右上下に移動させるものの事です。 D3DXMatrixLookAtLH()関数の第3引数の部分の計算です。 ですからカメラ位置(D3DXMatrixLookAtLH()の第2引数)は特に問題ないと思ったのですが、 全く別の事でしょうか? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/724
725: 名前は開発中のものです。 [sage] 03/12/22 22:50 ID:Q6Mm9LXS カメラの方向を変更する処理は、 D3DXMatrixLookAtLHでいちいち視点の設定をするのではなく、 最初に作った行列に対して、回転行列等をかけて求めれば無駄な苦労無い。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/725
726: 名前は開発中のものです。 [sage] 03/12/22 23:04 ID:qsJtcoHW >>725 ふむふむ。そんな方法がありましたか。 ポリゴンの移動(D3DXMatrixRotation()関数)みたいな感覚をカメラでやれば良いのかな? とりあえず今書いてる方法からその方法に変えてやってみます。 また疑問出たら質問に来ます。ありがとうございました。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/726
727: 名前は開発中のものです。 [] 03/12/23 01:53 ID:Dt0+LLSw 何か役立ちそうなツールを作ろうかと思うんだけど、 ツールの概念って何ですか? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/727
728: 名前は開発中のものです。 [sage] 03/12/23 02:41 ID:EO+0r1r5 何かの役に立つ物。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/728
729: 名前は開発中のものです。 [] 03/12/23 21:42 ID:5t0z2s2o 当たり判定のプログラムが書けん。 当たってるかどうかを判定するプログラムは分かるが、 当たっていたら前に進めないとか落ちないとか、そのへんが分からん。 普通、壁とかブロックとかの当たり判定ってどうやってるの。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/729
730: 名前は開発中のものです。 [sage] 03/12/23 21:43 ID:RhgrM0ZE 当たってたら直前の座標に戻すとか http://echo.5ch.net/test/read.cgi/gamedev/1036410116/730
731: 729 [] 03/12/23 22:02 ID:5t0z2s2o でも、それだと移動速度が速いときに壁と自キャラとの間に空間が出てしまうので もっといい方法ありませんか? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/731
732: 729 [] 03/12/23 22:02 ID:5t0z2s2o あ、>>731は>>730へのレスです。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/732
733: 名前は開発中のものです。 [] 03/12/23 22:16 ID:E3QeV1IX >>731 当たったんだから当たったときの場所に戻せはいいじゃん。 まあ、結構難しいけど。 まずは平面と直線の交点から地道にやってくしかないんじゃないのー。 俺もいい方法キボン。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/733
734: 名前は開発中のものです。 [sage] 03/12/23 22:17 ID:zvmW175r >>729=731 1.一回の計算での移動距離に上限を付ける。 それ以上の距離を一フレームで移動する場合、 途中の点でも衝突判定をする。 2.移動ベクトルと物体との交点を探す。 >壁と自キャラとの間に空間が出てしまうので というのを綺麗に処理するのなら、2.のベクトル方式かな。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/734
735: 734 [sage] 03/12/23 22:19 ID:zvmW175r ゲームは作ったことないのだけど、 シミュレーションで衝突判定をしたことがある。 その時は三次元だったし、素直にベクトルで計算した。 ついでにいうと、 ベクトルを使う場合にも移動距離に上限がある方がいいらしい。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/735
736: 729 [] 03/12/23 22:25 ID:5t0z2s2o >>734 スマソ、ベクトルとか、よく分からない。 教科書を読んでみたが、向きと長さを表すための数? やっぱり、ゲームプログラミングでは、この辺の知識って重要なのでしょうか。 で、どういうプログラムを書いたらいいのですか? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/736
737: 名前は開発中のものです。 [sage] 03/12/23 22:37 ID:cUrB4sUv 壁ぴったりの位置に補正さればいいんじゃないの? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/737
738: 729 [] 03/12/23 22:45 ID:5t0z2s2o >>737 それも考えてみたんですけど、うまくいきませんでした。 もしかして、こういう壁との当たり判定って王道はないの? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/738
739: 名前は開発中のものです。 [sage] 03/12/23 22:53 ID:sS23uhhi >それも考えてみたんですけど、うまくいきませんでした。 何がどううまくいかなかったのか書かずに、他人に理解してもらえると思っているのか? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/739
740: 名前は開発中のものです。 [] 03/12/23 23:57 ID:yXOe9rbq 素直に>>734の1.の方法でいいじゃん。 無駄な計算が発生するけど、一番単純。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/740
741: 名前は開発中のものです。 [sage] 03/12/24 00:53 ID:j0JfsxS8 妥協をしないんなら、 1.各オブジェクトが現在の速度で衝突なしで移動できる時間のうち、最も短い時間を算出 2.その時間分だけすべてのオブジェクトを移動 3.そのタイミングでの衝突に対するリアクション これを、1フレーム分時間が進むまで繰り返す。 最近のマシンなら、これくらいまじめにやっても意外とゲームに支障が無いかもしれない。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/741
742: 名前は開発中のものです。 [sage] 03/12/24 01:13 ID:43TGeIPz 移動ベクトルとの交点を求めればいいだけなのに、 なんでわざわざ判定を細かくする必要があるの? >妥協をしないんなら、 すさまじいほど妥協の固まり。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/742
743: 名前は開発中のものです。 [] 03/12/24 01:29 ID:LQ2+WnwS まじめに物理シミュをしたい場合なんかは必要だね。 単純な例だとビリヤードとか。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/743
744: 名前は開発中のものです。 [sage] 03/12/24 09:27 ID:4RuabZKq 速度が速いものの当り判定でいかに突き抜けないか?ってのは俺も悩んだ時があったよ。 結局、速度を10分の1にして、1サイクルで10回計算する方法で乗り切った。 そうすれば、直前に戻す場合、カベとの隙間は今までの10分の1になる。 ただ、計算量が多い場合はダメだが。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/744
745: 744 [sage] 03/12/24 09:33 ID:4RuabZKq すまん、訂正。そういえば22回ぐらいにしたんだった。 計算回数でスピード調整できるから後で変更したんだった。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/745
746: 729 [] 03/12/24 10:19 ID:URj7Zjll >>742 俺ベクトルとか良く分からないんですけど 具体的に、どういうプログラムを書いたらいいんですか? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/746
747: 名前は開発中のものです。 [sage] 03/12/24 10:52 ID:43TGeIPz 判定に使うベクトルは移動量でクリッピングされた一本の線。 それを使って障害物との交点を出すだけ。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/747
748: 名前は開発中のものです。 [sage] 03/12/24 10:52 ID:MQdqvAgE >>746 ぐぐれ。 もしくはジェムズ買え。ゲームのための数学本もたくさん出てるぞ。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/748
749: 名前は開発中のものです。 [sage] 03/12/24 11:01 ID:43TGeIPz 中学で習う連立方程式で解けるから、数学本をみるほどでもないよ。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/749
750: 名前は開発中のものです。 [sage] 03/12/24 11:33 ID:AfYGS6+9 分からんなら書けるわけねぇだろ アホ http://echo.5ch.net/test/read.cgi/gamedev/1036410116/750
751: 名前は開発中のものです。 [sage] 03/12/24 11:35 ID:22uuXHWk 判定を細かくしてるやつらに聞きたい レーザーとかマシンガンとかそういうものの判定はどうしてるんだ? もしかして1ドット単位で計算するのか? あふぉらし。 中学生のときに二本の線の交点を求めただろ? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/751
752: 名前は開発中のものです。 [sage] 03/12/24 13:13 ID:fy5Ig0wI 続きは「線分どうしの交点を求める」スレでどうぞ http://echo.5ch.net/test/read.cgi/gamedev/1036410116/752
753: 729 [] 03/12/24 15:07 ID:URj7Zjll いろいろ調べてみたが、全然分からん。 たのむ、プログラムを晒してくれ。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/753
754: 名前は開発中のものです。 [sage] 03/12/24 15:23 ID:YiiTAHQu いやだ http://echo.5ch.net/test/read.cgi/gamedev/1036410116/754
755: 名前は開発中のものです。 [sage] 03/12/24 15:37 ID:wvuHL31/ 当たっているかどうかの判定はできてるんでしょ? 原始的というかへぼい方法でいいなら、当たらなくなるまで逆方向にちょっとづつ戻す、ってのでどうさ。 というか、質問が変わっていて、線分の交差判定とかやりたいなら「線分交差」などの 単語でググル先生で調べるとか。単語を変えてみるとか。 もう少し、根気よく調べてはどうか? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/755
756: 名前は開発中のものです。 [sage] 03/12/24 15:49 ID:43TGeIPz ベクトルの説明もしたし、交点は連立方程式で解けるともいった。 分からないところなど残っていないはずなのだが、結局何が分からないの? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/756
757: 729 [] 03/12/24 15:53 ID:URj7Zjll >>755 線分の交差判定のプログラムは見つけることが出来たが理解できなかった。 あきらめます。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/757
758: 名前は開発中のものです。 [sage] 03/12/24 16:16 ID:j0JfsxS8 >>742 レスが遅くなりましたが。 > 移動ベクトルとの交点を求めればいいだけなのに、 > なんでわざわざ判定を細かくする必要があるの? 衝突によるリアクションで移動ベクトルが変化し、 元の移動ベクトルでは発生しなかった衝突が発生したり、 元の移動ベクトルでは発生していたはずの衝突が発生しなかったりするからです。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/758
759: 名前は開発中のものです。 [sage] 03/12/24 16:39 ID:AfYGS6+9 ベクトルが分からない 二次連立方程式も解けない そんなあなたに ハードコーディング http://echo.5ch.net/test/read.cgi/gamedev/1036410116/759
760: 名前は開発中のものです。 [sage] 03/12/24 16:52 ID:TlaAffnt 背伸びせずに自分の知識で実現できる物を作れ http://echo.5ch.net/test/read.cgi/gamedev/1036410116/760
761: 729 [] 03/12/24 16:58 ID:URj7Zjll 本当に、ベクトルが分からないとアクションゲーム作れないのですか? マリオとか、普通のアクションゲームはおづいう処理やっているのですか。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/761
762: 名前は開発中のものです。 [sage] 03/12/24 17:18 ID:wvuHL31/ >>729 もう少し前提条件を書きなよ。 マリオタイプなら背景の判定がセル単位になるからセルの位置にまで戻す。 不定形なら、 >当たらなくなるまで逆方向にちょっとづつ戻す これでできないかい? ベクトルは知らなくても、概念はいつの間にか使っているはず。 小難しく考えない方がいいかも。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/762
763: 名前は開発中のものです。 [] 03/12/24 17:19 ID:JEYstVzG >>761 別に無理じゃないかもしんないけど。 ベクトルだってわざわざ難しくするためにあるんじゃなくて ベクトルとして表すと楽だから存在するわけだからベクトルを使わないで やるっていったらそれだけの手間がいるよ。 2Dにしても3Dにしてもマリオは結構難しいかもよ。 (色々とフリーでマリオをパクッたようなゲームが落ちてるけどそのどれもが動きを表現しきれてないじゃん。) 紙に図を書きながらならベクトルと意識させずに教えることはできるだろうけど、 掲示板だとベクトルがわからないとちょっとしたことを教えるのに非常に手間がかかる。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/763
764: 名前は開発中のものです。 [sage] 03/12/24 17:22 ID:AfYGS6+9 知るかアホ テメーはテメーの靴でも磨いてろ http://echo.5ch.net/test/read.cgi/gamedev/1036410116/764
765: 名前は開発中のものです。 [ひおjぉいgjsx] 03/12/24 17:23 ID:kLqAWE7R RPGの会話は1個1個関数にしておくのがベストなのかね いちいちメインで書くとややこしくなるし アドバイスお願いしますよ http://echo.5ch.net/test/read.cgi/gamedev/1036410116/765
766: 名前は開発中のものです。 [] 03/12/24 17:38 ID:JEYstVzG >>765 スクリプトエンジンみたいなもの作れば楽にできるんじゃないですかね? http://white.sakura.ne.jp/~piro/javascript/engine/manual/manual.html http://www.epics.jp/ http://echo.5ch.net/test/read.cgi/gamedev/1036410116/766
767: 名前は開発中のものです。 [sage] 03/12/24 17:45 ID:43TGeIPz メッセージはファイルなりリソースなりから読み出すようにする。 ごく小規模なプログラムでないのなら、プログラム中に直接記述すべきではない。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/767
768: 脳内開発0.1% [sage] 03/12/24 17:48 ID:TlaAffnt >>765 プログラミング言語を理解していてもシステムが組めるワケではない 正直ゲームを作るとか以前のレベルと思われ デザパタ本でも買えばどうよ? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/768
769: 名前は開発中のものです。 [sage] 03/12/24 18:19 ID:viWWNVza >>761 ベクトルを知らなくても作れるよ。 昔のベーマガの投稿で小学生や中学生はいたしね。 とりえあずベクトルを使わずに工夫してやってみれば? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/769
770: RPG開発中 [sage] 03/12/24 20:43 ID:RGjm/FAD >>765 私はイベント処理用にバイトコードベースの仮想マシン作って 会話もその中で処理しているよ。たとえば、1番のメッセージ を表示、というイベントを作るなら 0x40 01 (0x40は後続1バイトをメッセージ番号とみなすメッセージ表示コード) というバイト列をイベントコードとして持たせておく。 イベントの情報はこんな感じで持たせる。 typedef struct { /* イベント情報構造体 */ int iChrNo; /* 表示キャラクタ */ int iType; /* 進入タイプ */ /* コード配列 */ BYTE abyCode[64]; } EVENTDATA; あとはこのイベント情報をマップの大きさに対応した配列に 入れておいて、移動処理のたびに移動先にイベントがあるか 調べ、あればイベントを処理する、という流れ。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/770
771: 名前は開発中のものです。 [sage] 03/12/24 23:37 ID:AfYGS6+9 >>770 会話の内容の部分はどこにある? また別に コードと対応する配列を用意してるとか? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/771
772: RPG開発中 [sage] 03/12/25 19:57 ID:NmX/fLFn >>771 会話などの文字列データは、文字列テーブル(65536バイトのバッファ を256分割して割り当て)に配置。イベントでは他にグラフィックも 出そうかと思っているけど、これはどうしたものか・・・。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/772
773: 名前は開発中のものです。 [sage] 03/12/26 02:29 ID:rER+QHNY >>772 すまん、まったく理解不能 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/773
774: 名前は開発中のものです。 [sage] 03/12/26 03:17 ID:4yV1zVt6 >>772 256byte(半角255文字)のストックが256個あるってこと? 俺もよー分からん。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/774
775: RPG開発中 [sage] 03/12/26 07:04 ID:xfqL31qs いや、だから65536バイトのバッファを取っておいてそれを 256分割してポインタに分配しているということ /* 文字列テーブル用バッファ確保 */ g_lpStringTable = (char *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, 256 * 256); /* 文字列テーブル用バッファを分配 */ for (i = 0;i < 256;i++) { g_alpszString[i] = g_lpStringTable + i * 256; } こんな感じで。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/775
776: 名前は開発中のものです。 [sage] 03/12/26 07:40 ID:/X8b3kq4 >>775 文字通りバッファ(シーン毎にファイルから読み込んでスプールしておく?) なのは置いておいて、>>770が聞いてるのは実データの格納場所じゃなかろうか。 かなり好意的な解釈だが。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/776
777: RPG開発中 [sage] 03/12/26 08:09 ID:xfqL31qs >>776 今は実データの場所は、各種グラフィックやマップ・文字列、 イベント、敵などの各種データなどを収めたシナリオファイル 内だね。最初にこのシナリオファイルを読み込んで、その中の 文字列をバッファに格納しておく。 まあ、文字列はプログラムの実行中にバッファにあればよい から、別にコードで設定しようが、ネットから読み込もうが どこにあっても良いんだけど。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/777
778: 名前は開発中のものです。 [] 03/12/26 11:30 ID:FaDIMQyf 質問 (。・_・。)ノ DirectPlayの利点が良くわからん。Socketで独自AP層実装するのに比べて何が良いの? http://echo.5ch.net/test/read.cgi/gamedev/1036410116/778
779: 名前は開発中のものです。 [sage] 03/12/26 13:09 ID:UokTH8Xi それがサクっとできる人には無用の長物かと。 http://echo.5ch.net/test/read.cgi/gamedev/1036410116/779
780: 名前は開発中のものです。 [] 03/12/26 13:39 ID:FaDIMQyf >>779 ありがd http://echo.5ch.net/test/read.cgi/gamedev/1036410116/780
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 190 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.011s