[過去ログ] DXライブラリ 総合スレッド その4 (1001レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
48
(1): 2009/08/13(木)09:08 ID:hlVZHvkF(1/2) AAS
武器とか魔法のデータってどうやって管理してる?
やっぱり大本のクラスを作って継承させる感じ?
DBとかでもりもり書いたほうが楽そうではあるんだけれど
49: 2009/08/13(木)10:27 ID:ymWx9+cu(1) AAS
>> 42
パレット操作
50: 2009/08/13(木)11:29 ID:FIgxQyht(1) AAS
そういやパレット操作の命令が追加されたんだっけ。

それを使って白い画像を作って、グラフィックハンドルまで用意しておけばできるはずだな……。
51
(2): 2009/08/13(木)13:06 ID:8SGCfcLw(1) AAS
>>48
struct(構造体)を持つSTLのリストを作って、そこで管理
新しく何かを手に入れたならば、リストに新しい構造体を埋める
代入する値は手打ち、つまり長々と代入文を書く。DB化してもよいが労力は大差ない
これは仲間キャラクターや戦闘の管理に向いているだろう

もう1つは数値をひとつ代入するリストを作って
そこに例えば武器ナンバー001番って値を入れて
省4
52: 2009/08/13(木)22:01 ID:hlVZHvkF(2/2) AAS
>>51
ありがとう
2つ目のパターンがいいのかな
どうも膨大になっちゃってたからいろいろ試してみる
ありがとう
53: 2009/08/13(木)22:09 ID:LkhPG9Xp(1) AAS
構造体の代入じゃ駄目なのかそれ
54: 2009/08/13(木)23:45 ID:u+NBJI2f(2/2) AAS
テンプレで、名前や数字を変えるだけで何とかなるものと、それだけでは表現できないものと、両方がある。

武器や魔法は前者であることが多いと思う。
ダメージなどが違うだけでアルゴリズムは変わらない。回復/支援魔法なども入れても数パターンで済む。
TRPG的な魔法とかはコンピュータゲームじゃ作りにくいだろうし。

逆に、イベントなどは後者で作られる。
クラスの継承なり、関数ポインタなり、外部スクリプトなりで、イベントごとにまるっと別の処理になるだろう。
ただしその場合でも、共通データを格納する部分は、武器や魔法と同じようなテンプレ処理を利用することになるかも。
55: ◆GRGSIBERIA 2009/08/14(金)00:12 ID:FT3Wa2QE(1/2) AAS
>>51
戦闘で魔法を使うんならその方法でいいだろうけど、
呼び出すときに関数ポインタ使わなきゃならんから面倒くさくね?
データ的には安上がりでいいんだろうけど、可読性考えると怖いなあ……。
56: ◆GRGSIBERIA 2009/08/14(金)00:19 ID:FT3Wa2QE(2/2) AAS
ごめんなさい。
二番目の話です。
57: 2009/08/14(金)00:50 ID:E9/t+ChI(1) AAS
基本基本クラスで例外は派生クラスでいいんじゃね
58: 2009/08/14(金)01:01 ID:Bq2DtYMd(1) AAS
まあ別に仕事でプログラムする以外だったら好きなようにすればいいんじゃね
59
(1): 2009/08/14(金)15:49 ID:X3RFlmNR(1/3) AAS
dxライブラリがSetDrawScreenで使っているバックバッファに
dxライブラリを介さずに絵を書き加えてやる方法はないもんかな・・・

それができるだけで結構3D表示させられそうなんだが
60
(1): 2009/08/14(金)16:36 ID:zyAixWsB(1/3) AAS
>>59
俺の場合3Dは行列系関数とDrawPolygon3Dで間に合ってるけど、
それって裏画面にDirectXで描画するってこと?
61: 2009/08/14(金)16:39 ID:yqfw1t8Z(1) AAS
うん
62: 2009/08/14(金)16:42 ID:X3RFlmNR(2/3) AAS
>>60
そそ。それでxファイルにして読み込んだ
ちょっと複雑な形を描きたいのさ

ちなみに直接表に描かせたら
最前面にチラつきながら描かれた。当たり前だが
63
(1): 2009/08/14(金)16:44 ID:gSsKeH9y(1) AAS
DX3D持ってたらそれ使うのもいいかも
使ったこと無いから分からんが
64
(1): 2009/08/14(金)16:45 ID:nG17WJCb(1) AAS
3Dを扱うのだったら、 DarkGDKがお勧め
使い勝手は、DXライブラリとほとんど同じ。

DarkGDK
外部リンク[php]:wiki.game-develop.com

DarkGDKの3Dデモ
外部リンク[html]:gamdev3.hp.infoseek.co.jp
65
(1): 2009/08/14(金)16:57 ID:zyAixWsB(2/3) AAS
DXライブラリの内部構造についてだったら公式で質問するのがいいかも

関係ないけど俺は自前でmqoファイルを読み込んでDrawPolygon3Dで表示させてる
アニメーションさせないならこっちのほうが簡単な可能性も。
66
(1): 2009/08/14(金)17:20 ID:X3RFlmNR(3/3) AAS
>>63-65
ありがと
せっかく用意されてるんだからDrawPolygon3Dでやるのが一番かねえ
半日ぶんの作業ムダ\(^o^)/になるけどさ・・・
67: 2009/08/14(金)18:06 ID:3WJxATTy(1) AAS
そこまでやるならDirectXで全部やる手も有力じゃね
68: 2009/08/14(金)21:00 ID:29Ur8y7j(1) AAS
DXライブラリの3Dが弱いってのは周知といえば周知だからなあ
なんともいえない感じ

自分もひとつ聞いていいかな
DrawFormatStringToHandleで文字出すときに文章列を垂直に描画する方法ってないものか
縦書きではなくあくまで横書きの文章を90度倒した感じでだしたいのだけれどどうだろう?
いまは画像ファイルに書き起こしたものをスタブで表示してるんだがそれにも限界があるなあと思って聞いてみた
69
(1): 2009/08/14(金)23:59 ID:zyAixWsB(3/3) AAS
>>69
つDrawFormatVStringToHandle
多分コレ
70: 2009/08/15(土)00:06 ID:6Y2Lsqny(1) AAS
ありがてえありがてえ
ヘッダ読んだらほんとにあったよ
やっぱ一度読むべきかなあ
ともあれサンクス
71: 2009/08/15(土)00:06 ID:/+RAh+Ze(1) AAS
感動した
72: 2009/08/15(土)04:30 ID:0tJ1Sg/h(1/2) AAS
ヘッダ読むとドキュメント化されてないすげえ関数いっぱい紛れてるから一度は読むべきだよな
73: 2009/08/15(土)05:38 ID:0FgKCDOQ(1) AAS
でも公開されてないって事は動作保証もされてないんでしょ?
ちょっと使うには不安だなぁ。

自分だけで楽しむモノを作るのならともかく。
74: 2009/08/15(土)09:50 ID:0tJ1Sg/h(2/2) AAS
フリーのライブラリで動作保証www
75: 2009/08/15(土)10:23 ID:ZOL661pL(1) AAS
フリーのライブラリに過度なサポートを求めるのもアレだと思うけど、
管理人はちゃんとリファレンスに載ってない関数も仕様のうちに含めてやってくれてるよ

自分で動作確認したり、ヘッダ読んだだけで用途が分かる人なら使っても問題無し。
76
(1): 2009/08/15(土)12:54 ID:KTR4wq9i(1/2) AAS
DrawFormatStringをオーバーロードしてキャストによる警告を防ぎたいんだけど
どうやってオーバーロードすればいいんでしょうか
, ... ) ; ←最後のコレのせいでうまくいかない
77: 66 2009/08/15(土)22:42 ID:eXbOcFmf(1) AAS
ところでDXlibとは別口で用意させたバックバッファを適当なサーフェイスに写し取って、
CreateGraphFromMemでハンドル取らせてDrawGraph、というのもやってみたが
やっぱりうまくいかなかった
というかエラー直していく気力が尽きた
78
(1): 2009/08/15(土)23:30 ID:vKUvgt96(1) AAS
>>76
こういうことだろうか
int DrawFormatString(double x, double y, int Color, const char *FormatString, ...)
{
char buf[1024];
va_list args;
va_start(args, FormatString);
省4
79: 2009/08/15(土)23:45 ID:KTR4wq9i(2/2) AAS
>>78
こんな方法が…ってよくわかってないけど
vsprintf→vsprintf_s で警告が全部消えてくれました
ありがとうございました
80
(1): 2009/08/16(日)11:37 ID:tL1KdmQ7(1/2) AAS
3Dで描画した画面にエフェクトをかけたいんだけど、
裏画面の内容をテクスチャにコピーするか、
テクスチャにZバッファを使って3D描画させる方法は無いものだろうか……
81
(1): 2009/08/16(日)16:11 ID:9Wblhgl3(1) AAS
>>80
ライブラリ使わない方がいいんじゃね?
専門書買ってDirectXを直接叩いた方が早いと思う
ぶっちゃけゲーム性に影響出るような話じゃないし、うじうじ悩むくらいなら仕様にした方が
82: 2009/08/16(日)16:52 ID:tL1KdmQ7(2/2) AAS
>>81
やっぱりDXライブラリじゃ無理かなー
DXライブラリだけでここまで出来るんだぜ!ってのを示すのが
ゲームのコンセプトの一つだったりするんで、このまま頑張ろうと思う
83: 2009/08/16(日)17:17 ID:DZlUccKL(1/2) AAS
PlayMovieで動画再生できるのにサンプルプログラムのDrawGraphを使った方法では動画再生できませんどうなっていますか
84: 2009/08/16(日)23:45 ID:DZlUccKL(2/2) AAS
ちなみに音は再生されます。原因が分かる方いらっしゃいますでしょうか。
85: 2009/08/16(日)23:52 ID:axVCKY3T(1) AAS
必要なコーデックがインストールされてないとか
86
(1): 2009/08/18(火)08:42 ID:RhXPi4iH(1) AAS
一切WaitTimerとかのウェイト系入れなくても60FPSで動いてるように見えるんだけどどこかで自動的に止まってるの?
止まってるとしたら完全に頼り切っていいのかな?環境によってはウェイト入らない・・・なんてことないよね?
87: 2009/08/18(火)09:43 ID:5Sn+aO70(1) AAS
画面の裏ページを表ページに反映するのに
ウエイトかかってると思うの
88: 2009/08/18(火)09:55 ID:sXr4stcl(1) AAS
環境によってはFPSが変わると思うの
89: 2009/08/18(火)11:33 ID:00xLRELk(1) AAS
AA省
90
(1): 2009/08/18(火)13:21 ID:zmoiJH/s(1) AAS
簡単だし必要な基礎知識だから、まずはティアリングとかvsyncとかでぐぐれ。

で、ScreenFlipはデフォでvsyncを取るんだが、その時に単純に待機するんで、60Hzの
リフレッシュレートのモニタで垂直帰線を待つ環境だと「たまたまいい具合に」60Hzで
動作するタイマーのような副作用が出る。だが、あくまでも偶然の副作用。120Hzの
CRTモニタなんかだと多分倍速ゲー。ライブラリの中身は見てないんで分からんけど、
DirectX9のPresentなんかだと描画領域が全部隠れたらノーウェイトになる。
まぁ、副作用に期待すんな、真面目に書け、ってこと。
省3
91: 2009/08/18(火)13:26 ID:HFc5HuZS(1) AAS
>>90
つまり「タイマー書け」ということだな
把握した
92
(1): 2009/08/19(水)21:48 ID:HjcmZFcs(1/2) AAS
2chスレ:tech
の質問をここでしても良いでしょうか?
93
(1): 2009/08/19(水)21:58 ID:0Pez5CCG(1) AAS
>>92
見てきた
int clsDx( void );の部分をclsDx();にすればおk
94: 2009/08/19(水)22:11 ID:HjcmZFcs(2/2) AAS
>>93
ありがとうございます!
95: 2009/08/19(水)22:52 ID:lo8N+aSi(1) AAS
まぁDirectXスレよりここで質問する方が正しいっちゃ正しいんだが…
ぶっちゃけ>>6だな
96: 2009/08/19(水)22:54 ID:MeZHtU7e(1) AAS
こまけぇこたぁ(ry
97
(2): 2009/08/20(木)12:27 ID:/tnemE9L(1/3) AAS
こんにちは
DrawGraphなどの描画先を画面ではなく画像データにしたいのですができませんよね?
どうしてますか?
98
(1): 97 2009/08/20(木)12:42 ID:/tnemE9L(2/3) AAS
画像データというか画面以外のサーフェスに描画したいということです
99: 2009/08/20(木)13:16 ID:YSyk4xXm(1) AAS
なるほど
100
(1): 2009/08/20(木)13:35 ID:nEJMnXXK(1) AAS
>>98
MakeGraphとかで作ったテクスチャに描画するのなら、
SetDrawScreenでDX_SCREEN_BACKの代わりにグラフィックハンドルを指定すればできる
そういうことじゃないのならわかんないや
101
(1): 97 2009/08/20(木)13:58 ID:/tnemE9L(3/3) AAS
>>100
できました!
ありがとうございました
102
(1): 2009/08/20(木)17:07 ID:0+koOsTw(1/2) AAS
DrawGraphなどで有効になる透過色を白色にできないでしょうか?
103: 2009/08/20(木)17:20 ID:yefoTBGX(1) AAS
>>102
SetTransColor( r, g, b ) で透過色設定出来るよ
104: 2009/08/20(木)17:22 ID:0+koOsTw(2/2) AAS
ありがとうございます
105: 2009/08/21(金)22:44 ID:a6lala98(1) AAS
SetDrawScreenってふつうのグラフィックハンドルも指定できるのか・・・
どこで知ったんだ?実験の賜物とか?
106: 2009/08/21(金)22:50 ID:U8PTrxx1(1/2) AAS
最初のスレの頃にはもう発見されてたような……
107: 2009/08/21(金)22:53 ID:U8PTrxx1(2/2) AAS
あ、最初に描画可能なグラフィックを作るフラグをオンにする必要があるのを忘れてた……
>>101は大丈夫だっただろうか
108: 2009/08/21(金)23:02 ID:6L4KzEGj(1) AAS
105のおかげで100の意味が初めて理解できた。
何を言ってるんだろうと思ってた。

ありがとう100と105。
109: 2009/08/21(金)23:16 ID:6oCpfJQO(1) AAS
俺も初めて知った
110: 2009/08/21(金)23:20 ID:oiLCSSry(1) AAS
初めて知った
感動した
111: 2009/08/22(土)04:26 ID:4ewWT7wa(1/3) AAS
SetDrawScreen という関数に画像ハンドルを渡すことで
レンダリングターゲットを変更することが出来ます。

ただ、どんな画像ハンドルでも良いと言うわけではなくて、
レンダリングターゲットにすることが出来る画像ハンドルである必要があります。
 レンダリングターゲットにすることができる画像ハンドルを作成する為には、
レンダリングターゲットにすることができる画像ハンドルを作成するかどうかを
設定する関数 SetDrawValidGraphCreateFlag に TRUE を渡して呼び出した後、
省12
112: 2009/08/22(土)09:14 ID:4ewWT7wa(2/3) AAS
透過も使いたい場合
外部リンク[cgi]:hpcgi2.nifty.com
113: 2009/08/22(土)11:24 ID:4ewWT7wa(3/3) AAS
うちのPCじゃ透過できなかったorz
114: 2009/08/22(土)14:54 ID:qJPnhRZH(1) AAS
ひとの形をしていなかったッ
115: 2009/08/23(日)16:41 ID:S7Qhx8zZ(1) AAS
製作中のゲームのメモリ使用量が300MBと半端ないんだが…。
どういう所を削ってけばいいんだろう。
それと、DXで製作されたソフトは内容にもよるだろうけど、
どのくらいの使用量が打倒?
116: 2009/08/23(日)16:47 ID:GkvvlwQe(1/3) AAS
画像や音楽データのフォーマット変換
117: 2009/08/23(日)16:48 ID:GkvvlwQe(2/3) AAS
実行中にメモリ使用量が除所に増えていくようならメモリリークの可能性がある
118: 2009/08/23(日)16:50 ID:GkvvlwQe(3/3) AAS
あとは、リソースは使いたいときだけオープンして使い終わったら開放するとか
119
(1): 2009/08/23(日)20:32 ID:GokZTUUA(1/2) AAS
俺のパソコンだけかも試練が、

↑キーまたは↓キーを押している間、文字キーは1個しか入力できないの?
←キーまたは→キーを押している間は文字キーを2個入力できるのに。
120: 2009/08/23(日)20:35 ID:GokZTUUA(2/2) AAS
ゲームのボタン配置変えたら解決した。
X → S
Z → A
121
(1): 2009/08/23(日)20:38 ID:omMMPR8c(1) AAS
現在のPCの仕様だから問題ない
同時押しできるキーがある程度決まってるんで、
動的なゲームだとパッド対応にしないと辛かったりする
122
(1): 2009/08/23(日)20:54 ID:BIZKogr3(1) AAS
今のPCゲーは1G2G推奨があるから300M使ったぐらい問題ないだろう
123: 2009/08/23(日)21:30 ID:f9+n1yyL(1) AAS
>>122
それで収まってるならいいけどリークしてる場合1G超えちゃったりするから
124: 2009/08/23(日)23:57 ID:fzVvbF1D(1) AAS
>>119
キーボードは一部のキー(Shiftなど)を除いて、同時押し出来るように作られてないからな。

>>121
PCの仕様というか、キーボードの仕様だな。
しかも物理的な回路レベルでの話だから、プログラムで解決できる問題じゃない。
125: 2009/08/24(月)03:15 ID:04E2ZlIh(1) AAS
いいキーボードを使えば回避できるらしいというのを聞いた頃がある
マジ?
126: 2009/08/24(月)03:20 ID:I4p4xHvy(1) AAS
全てのキーの同時押しに対応しているキーボードもある
127: 2009/08/24(月)03:34 ID:NKOKVJpx(1) AAS
>同時押しが出来ない
コスト削減のためらしいしね。
128: 2009/08/24(月)08:14 ID:D9SJqUdL(1) AAS
パソコンによってはできない組み合わせで押すと本体から電子音がでるよね
1-
あと 873 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.025s