トップページgamedev
1001コメント334KB

DXライブラリ 総合スレッド その8

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2011/04/03(日) 17:17:11.99ID:liTmPO3j
Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

【公式】
http://homepage2.nifty.com/natupaji/DxLib/

【過去スレ】
DXライブラリ 総合スレッド
http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
DXライブラリ 総合スレッド 2008
http://pc11.2ch.net/test/read.cgi/gamedev/1224923873/
DXライブラリ 総合スレッド その3
http://pc11.2ch.net/test/read.cgi/gamedev/1238429676/
DXライブラリ 総合スレッド その4
http://pc11.2ch.net/test/read.cgi/gamedev/1249822550/
DXライブラリ 総合スレッド その5
http://pc11.2ch.net/test/read.cgi/gamedev/1259912953/
DXライブラリ 総合スレッド その6
http://hibari.2ch.net/test/read.cgi/gamedev/1267108154/
DXライブラリ 総合スレッド その7
http://hibari.2ch.net/test/read.cgi/gamedev/1286180687/
0161名前は開発中のものです。2011/04/19(火) 19:24:52.92ID:OCzKiVRH
なるへそ
0162名前は開発中のものです。2011/04/19(火) 19:27:18.85ID:OCzKiVRH
なんでfor文があるんですか?
0163名前は開発中のものです。2011/04/19(火) 19:31:25.44ID:BUMN6eju
multimapでfirstをY座標の値、secondを構造体かクラスのポインタ
0164名前は開発中のものです。2011/04/19(火) 19:48:45.67ID:hqIQjP2u
配列の各要素にアクセスするためとしか言いようがないな
ちなみに要素数が2なんでfor( i=0; i<10; i++ ) はfor( i=0; i<2; i++ ) になるはず
0165名前は開発中のものです。2011/04/19(火) 19:48:51.23ID:OCzKiVRH
>>163
はて?
0166名前は開発中のものです。2011/04/19(火) 19:56:56.40ID:BUMN6eju
>>165
STL使わないならスルーしてくれ
0167名前は開発中のものです。2011/04/19(火) 20:21:06.58ID:zBk5BSCq
ID:OCzKiVRH、小学生だろこいつ
基本的な文くらいできるようになってから来いよ…。
もしくはなん質でも行け。
0168名前は開発中のものです。2011/04/19(火) 22:11:32.99ID:DdF9Bpal
そのとある掲示板がなん質かなんかだったと思う。昨日見た。
0169名前は開発中のものです。2011/04/19(火) 22:39:43.77ID:CuOzTaHr
ID:OCzKiVRHはpredicateがわかってないか忘れているだけじゃないかと予想
0170名前は開発中のものです。2011/04/19(火) 23:34:18.45ID:sfRNT3qP
要素数2だけでいいのか?
2なら簡単だけど多分違うんだろうな
違うという前提ならやはり構造体かクラスに座標情報を持たせて
それらを配列なりリストなりにして
ソートさせて表示でいいんじゃないの
0171名前は開発中のものです。2011/04/20(水) 16:34:52.26ID:gmfDKVTI
>>167
まぁまぁ
初心者がいないとスレも過疎るじゃん?
0172名前は開発中のものです。2011/04/20(水) 16:38:32.43ID:gmfDKVTI
>>160
思ったんだけど、これソートできるか?
0173名前は開発中のものです。2011/04/20(水) 16:55:43.82ID:QAjmiDzS
できるできる
0174名前は開発中のものです。2011/04/20(水) 17:05:46.32ID:gmfDKVTI
え?だって質問者はy座標で関数を入れ替えたいんだろ?
qsortってのは使ったことないんだけどできなさそうなんだが
0175名前は開発中のものです。2011/04/20(水) 17:11:27.15ID:QAjmiDzS
使ってみれば分かるんだけどね・・
0176名前は開発中のものです。2011/04/20(水) 17:13:37.27ID:QAjmiDzS
qsortは要素の比較関数ってのを自分で作って渡すんだけど、その関数にY座標の比較を入れればそういうふうにソートできる。
0177名前は開発中のものです。2011/04/20(水) 17:24:38.57ID:gmfDKVTI
y座標を比較すれば構造体のおかげで関数も自然に入れ替わるってこと?
qsortは使ったことないんだけど  …おかしいこといってたらごめんってことです
0178名前は開発中のものです。2011/04/20(水) 17:29:01.31ID:yrI6qPon
質問が難しいな
関数入れ替えたいってどういうことなんだろう
0179名前は開発中のものです。2011/04/20(水) 17:48:56.59ID:GN2ua2Pn
Cの勉強をしたって書いてあるけど、経験が無くて使い方がわからないんじゃないかと推測。
彼はプログラムの概念をわかっていないように見えるし、レスもよくわからないから的外れだったら申し訳ない。

たぶん彼が言いたいことはこう。

まず以下のように書くとA、B、Cの順で描画される。
LoadGraphScreen( A.x , A.y , "A.bmp" , TRUE ) ;
LoadGraphScreen( B.x , B.y , "B.bmp" , TRUE ) ;
LoadGraphScreen( C.x , C.y , "C.bmp" , TRUE ) ;

けれどもこの時y座標の大きい順に描画したい。
例えばC、A、Bの順に大きかったら、以下のようになると良し。
LoadGraphScreen( C.x , C.y , "C.bmp" , TRUE ) ;
LoadGraphScreen( A.x , A.y , "A.bmp" , TRUE ) ;
LoadGraphScreen( B.x , B.y , "B.bmp" , TRUE ) ;

つまり、彼は描画順序を入れ替えたいんだけど、その手段としてソース上で順序を入れ替えないといけないと思っているんじゃないかな。

二つに限定して、且つ超初歩的にやればこれでいいんじゃないの?
もちろん配列でソートでって方が汎用性高いのはわかってる。

if(ch.y > tk.y){
LoadGraphScreen( ch.x , ch.y , "test1.bmp" , TRUE ) ;
LoadGraphScreen( tk.x , tk.y , "test2.bmp" , TRUE ) ;
}else{
LoadGraphScreen( tk.x , tk.y , "test2.bmp" , TRUE ) ;
LoadGraphScreen( ch.x , ch.y , "test1.bmp" , TRUE ) ;
}
0180名前は開発中のものです。2011/04/20(水) 17:59:23.21ID:yrI6qPon
それならLoadGraphScreenじゃなくてLoadGraphにして
グラフィックハンドル使うようにしたほうがよくね?
0181名前は開発中のものです。2011/04/20(水) 18:21:21.63ID:gOh24mXV
>>180
>>179>>147の例でLoadGraphScreen使ってるから
同じように書いただけでしょ

>>179
「関数の並び順を入れ替える」って書き方からして多分そうだろうね
0182名前は開発中のものです。2011/04/20(水) 18:41:19.53ID:yrI6qPon
>>181
ああ、書き方が悪かった
先にLoadGraph覚えたほうがよくね?と
0183名前は開発中のものです。2011/04/20(水) 19:52:46.50ID:gmfDKVTI
でも絵を描画する為にわざわざ構造体を使うだなんて面倒くさいな
もっと簡単な方法があればいいんだけどね
0184名前は開発中のものです。2011/04/20(水) 19:57:18.68ID:QAjmiDzS
3D機能のZバッファとかなんとかで適当に何とかなんないかな?
0185名前は開発中のものです。2011/04/20(水) 19:59:14.98ID:u46E6FXO
>>184
それでも半透明含む画像なら描画順ソートしないといけないからなぁ
0186名前は開発中のものです。2011/04/20(水) 20:17:07.27ID:gmfDKVTI
>>183は訂正
わざわざ構造体を何度も使わなくても良かった
0187名前は開発中のものです。2011/04/20(水) 20:56:03.86ID:7Yep2+Xc
>>179
質問者の意図を理解できた! ありがとう>179! お前さん凄いよ!
0188名前は開発中のものです。2011/04/21(木) 00:23:44.65ID:21Pfty4+
そんなもんみんな気付いてたことなんじゃないの
0189名前は開発中のものです。2011/04/21(木) 00:38:15.37ID:tulFtZ6S
ソース公開したら簡単に解決したと思う
0190名前は開発中のものです。2011/04/21(木) 02:21:16.68ID:8fqBzhMo
>>188
関数の入れ替えってあたりの文面がどうも意味不明で
質問の意図を理解できてなかったんだ
0191名前は開発中のものです。2011/04/21(木) 04:44:00.06ID:kTQF2lXe
なんかいろいろ勘違いしてるんだろうなーでも触れるとめんどくさそうだなーと思ったから誰も触れなかったんだよ
0192名前は開発中のものです。2011/04/21(木) 17:55:52.72ID:7X7Ch23Q
>>191
いや、勘違いはしてないと思た
0193名前は開発中のものです。2011/04/21(木) 20:22:14.76ID:z6Ik0fAk
文字を回転や拡大させたかったら文字の画像を作るのが一番なのかな
0194名前は開発中のものです。2011/04/21(木) 20:30:20.48ID:w6LbHHkh
そうだな
0195名前は開発中のものです。2011/04/22(金) 15:22:32.53ID:ZZbcrveS
>>160
わ、分からない…
描画関数の分だけ構造体つくればおkなの?
0196名前は開発中のものです。2011/04/22(金) 15:51:49.28ID:d2IDnen2
はい?
0197名前は開発中のものです。2011/04/22(金) 16:19:03.02ID:IbxgPKF0
「関数そのもの」と「関数呼び出し」と「ソースコードの一行」を使い分けろ
0198名前は開発中のものです。2011/04/22(金) 16:46:44.29ID:ZZbcrveS
はい?
0199名前は開発中のものです。2011/04/22(金) 18:14:26.01ID:vb0J5xwN
関数のぶんだけというか描画する画像の分だけ構造体をつくるんだな
0200名前は開発中のものです。2011/04/22(金) 18:30:53.52ID:5772Xp6L
手続きか
0201名前は開発中のものです。2011/04/22(金) 18:58:47.76ID:iP1DrzVR
CとC++勉強してから出直してきなっ が正解だと思う
もしくはゲームの基本設計
0202名前は開発中のものです。2011/04/22(金) 19:10:34.25ID:iUZtwWxy
んだな〜
とりあえず四聖龍神録のとこに誘導してみるか
http://dixq.net/rp/
とりあえずココ行って基礎を学んでくれ
0203名前は開発中のものです。2011/04/22(金) 19:16:48.12ID:rCUrQ5sm
画像をロードしてから、
DrawGraphやDrawExtendGraphといった複数の描画関数を使ってることだよね?
そしてこの場合、単純に>>160の方法では無理なんじゃない、って話?

俺は経験薄なんでこれがまともな方法か分からんが
どの描画関数を使うかのフラグと、全ての描画関数に対応したメンバを持つ構造体を作って
それに次々に値を放り込んだ後、ソート→フラグに応じた描画関数で描画、という流れにするかなぁ
0204名前は開発中のものです。2011/04/22(金) 19:41:48.50ID:WNlqzxto
描画系関数って、上位互換/下位互換的な関係のものが多いから
(例:DrawGraphで出来る描画はDrawExtendGraphでも可能)
どれぐらい複雑な描画をしたいか、に応じて使う関数を決めれば良いと思うよ。
0205名前は開発中のものです。2011/04/22(金) 19:48:39.62ID:mHWapd/x
>>203
流れから言って>>195はド初心者だ。
描画関数っていうのはLoadGraphScreenのことだと思われる。
プログラムを教えるときに初心者の説明が正しいと思って聞くことがまず間違い。
0206名前は開発中のものです。2011/04/22(金) 20:00:26.12ID:17mzfYEX
まずLoadGraph覚えて
DrawGraph等の描画関数使えるようにならないとだるい
0207名前は開発中のものです。2011/04/22(金) 20:21:32.51ID:ZZbcrveS
>>203
ありがとうございました
おかげで解決しました
0208名前は開発中のものです。2011/04/23(土) 04:07:37.85ID:+EnSFA7O
今までファイル読み込み関係の関数の存在意義がわからなかったのだが
もしかしてこれを使わないとDXアーカイブ内部のファイルが読めない?
0209名前は開発中のものです。2011/04/23(土) 04:19:37.94ID:96fUA2Yj
んだねー
0210名前は開発中のものです。2011/04/23(土) 09:58:05.21ID:8HtAA01M
>>208
もろDXアーカイブ用の為の関数よ。
0211名前は開発中のものです。2011/04/23(土) 10:01:41.96ID:tKjuaaW1
製作中はアーカイブにせずそのままだろうから
いざ最後にアーカイブ化してそのことに気づくというパターンはありそう
っていうか俺も今気づいた。
アーカイブにしたら動かないだろうな
0212名前は開発中のものです。2011/04/23(土) 10:10:56.27ID:8HtAA01M
>>211
DXアーカイブの強みは、DxLib内の関数のみを使用している意識せずに使えることなんだけど…。
ちゃんとリファレンスを読もう。
0213名前は開発中のものです。2011/04/23(土) 10:13:40.19ID:8HtAA01M
今日は起きたばかりなせいか文章能力がだいぶ欠落してるなw

>>210 用と為被ってておかしいのと、
>>212 DxLib内の読込関数を使用していれば意識せずに です。

ごめんなさい、許して。
0214名前は開発中のものです。2011/04/23(土) 10:16:12.31ID:YgZ77nNp
ゆるしますん
0215名前は開発中のものです。2011/04/23(土) 10:54:21.56ID:+IqGunXJ
ゆるせませんん
0216名前は開発中のものです。2011/04/23(土) 11:02:02.06ID:kMHIx+H2
スンスンスーン
0217名前は開発中のものです。2011/04/23(土) 12:14:29.86ID:VGABxqlM
FireRead_readをC標準関数のreadと同じ感覚で使おうとしたら
痛い目にあったことを思い出した。
0218名前は開発中のものです。2011/04/23(土) 12:15:37.75ID:VGABxqlM
FileRead_readをC標準関数のreadと同じ感覚で使おうとしたら
痛い目にあったことを思い出した。
0219名前は開発中のものです。2011/04/23(土) 12:16:51.97ID:VGABxqlM
生まれて初めて2重書き込みという物をやらかした。
すまん。
0220名前は開発中のものです。2011/04/23(土) 12:18:31.59ID:kMHIx+H2
気にするな
0221名前は開発中のものです。2011/04/23(土) 12:23:49.62ID:bPWS++pQ
どんまいだ
0222名前は開発中のものです。2011/04/23(土) 12:40:13.04ID:/QKrQh/6
責任を取って死ぬべき
0223名前は開発中のものです。2011/04/23(土) 13:46:37.99ID:tKjuaaW1
>>212
製作中はアーカイブにしないから
標準の読み込み関数を使ってしまって
そのためにアーカイブ化すると動かなくなるということ話ね。
0224名前は開発中のものです。2011/04/23(土) 17:29:32.03ID:8HtAA01M
>>223
あぁ、何も考えずに勝手に手が動いちゃってみたいな意味か。
0225名前は開発中のものです。2011/04/23(土) 17:53:52.76ID:Nu+ZK2JU
>>203
それだったらクラスでスッキリ解決するのでは
0226名前は開発中のものです。2011/04/23(土) 17:55:44.84ID:YC2BcyK4
自分もそのパターンだなあ。

俺用フレームワークを作ってる人は多いと思うけど、
拡張しながら使っているとは言え、新しい機能とか部分的に対応してなかったりするんだよなw
0227名前は開発中のものです。2011/04/23(土) 17:59:12.91ID:MULAonT8
64bit版ライブラリを作ろうとしてソース調べてたんだけど
DxWin.cppのWM_MOVEShred関数の
WinData.WindowRect.left = ( lParam << 16 ) >> 16;
を筆頭に変な書き方をしている部分が多くて挫折しそう
0228名前は開発中のものです。2011/04/23(土) 20:46:39.92ID:9baWLQqe
固定小数点の変数として見てて
上位16ビットを捨てて小数点以下にしてるとか?
0229名前は開発中のものです。2011/04/23(土) 20:58:50.32ID:MULAonT8
いや、lParamが32bitだと仮定して16bit左シフト16bit右シフトで
上位16bitをクリアしようとしてる
当然lParamが64bitであるx64では破綻する

むしろ符号拡張絡みで32bitでもやばい気がしないでもない
Windows的にはHIWORD,LOWORDマクロで取り出すのが正攻法
0230名前は開発中のものです。2011/04/23(土) 21:32:25.30ID:l8bD6Lx5
>>229
公式で指摘してあげたらいんじゃね?
管理人さんも万能のスーパーマンというわけではないのだから
0231名前は開発中のものです。2011/04/23(土) 21:45:55.91ID:VcZqyLro
結局、質問掲示板のほうに言ったか
向こうも大混乱だな
0232名前は開発中のものです。2011/04/23(土) 22:48:29.18ID:MULAonT8
>>230
ネイティブ64bit対応なんてこのライブラリのユーザ層からして需要がないから
公式には書きにくくてね
0233名前は開発中のものです。2011/04/23(土) 23:55:35.46ID:96fUA2Yj
ネイティブで64bit対応するとどういう得があるんだっけ?おしえてくだちい
0234名前は開発中のものです。2011/04/24(日) 02:35:50.16ID:h1rovhXU
開発側が32bitを切りたいと思ってるなら役立つ?
少なくともXPは全滅しそう。
0235名前は開発中のものです。2011/04/24(日) 18:35:19.94ID:QtHel+Bq
>>233
doubleが64ビット
0236名前は開発中のものです。2011/04/24(日) 18:36:28.57ID:f3nRIpeu
メモリコピーがちょっと早くなるだけ?それってそんなにいるの?
0237名前は開発中のものです。2011/04/24(日) 21:07:31.04ID:/nQOPHyj
龍神録のHPのゲームプログラミングの館が一新されてる
0238名前は開発中のものです。2011/04/24(日) 21:08:50.83ID:/nQOPHyj
あ、古いのは下側にあったわ
0239名前は開発中のものです。2011/04/24(日) 21:13:01.00ID:v3pwyrnJ
初心者が詰まりそうなトコが個別に分かりやすくまとめられてるな ナイスだ
0240名前は開発中のものです。2011/04/24(日) 22:28:09.84ID:c1FilR2L
おおおおお
0241名前は開発中のものです。2011/04/24(日) 22:57:06.46ID:9GkRz4f/
SNS設置してねーわとか思ってたけど無くなったの?
やっぱり不評だったんだな。
まあ個人サイトをここでとやかく言うことではないか。
0242名前は開発中のものです。2011/04/24(日) 23:19:51.61ID:n/oFO+Nc
mixc++とかいうのがバーンとあるじゃん
0243名前は開発中のものです。2011/04/25(月) 00:09:14.76ID:cByZ1ecF
いや、前はSNSだったけど今はForumになってるみたい。
0244名前は開発中のものです。2011/04/25(月) 05:58:47.55ID:hAU7bdZk
あれはフォーラムにしてSNSだよ
0245名前は開発中のものです。2011/04/27(水) 16:41:50.17ID:SfWDnuLr
このゲームはDXライブラリ使ってるとか分かる方法ありますか?
0246名前は開発中のものです。2011/04/27(水) 16:50:07.54ID:IPJ0XE3+
何か根本的な勘違いをしてる気もするが……まあいいや。

Log.txtとDXライブラリ用アーカイブあたりで判別できることはある。
あとreadme
0247名前は開発中のものです。2011/04/27(水) 23:12:59.43ID:2C6l25XF
そのゲームのexeをメモ帳で開いてDxLibで検索してみ
0248名前は開発中のものです。2011/04/29(金) 19:09:37.42ID:DyYH5Z77
ふと思ったんだが
DXライブラリでつくられたゲームで売れているのってあるか?
0249名前は開発中のものです。2011/04/29(金) 19:16:58.08ID:kMqcAN+6
>>248
有名なのはディアドラエンプティとかかな
売れてるかはわからないけどアナザーアポカリプスってのも評判良かった
あと東方二次創作ではDXライブラリ製が結構多い
0250名前は開発中のものです。2011/04/29(金) 20:00:19.32ID:QpcweCtM
全部シューティングか
0251名前は開発中のものです。2011/04/29(金) 20:09:32.74ID:KkdA+cFq
ロックマンみたいなやつもあったね
0252名前は開発中のものです。2011/04/30(土) 00:40:51.92ID:32GM57KJ
>>251
あーそれ、さっきまで遊んでた
フロイデンシュタヘルとかいって喋るやつじゃない?
0253名前は開発中のものです。2011/04/30(土) 07:10:23.99ID:aEFMseaj
Rosenkreuzstiletteだね
あと古いゲームだけど、だんえたもそこそこ売れたんじゃないかな
調べてみるとフリーで有名なゲームにもDXlib使ってるのがちらほら
0254名前は開発中のものです。2011/05/01(日) 01:22:54.30ID:Ev0zZ5zF
SetAlwaysRunFlagをTRUEにして、GetActiveFlagがTRUEの時に
キー判定をするようにしても、VC++がアクティブ時だとキーが
反応してる気がする
0255名前は開発中のものです。2011/05/01(日) 06:52:06.21ID:IAjZNoGW
VC++が親プロセスになってるからかな?
単独で動かしたときはどうよ?
0256名前は開発中のものです。2011/05/07(土) 23:50:21.56ID:EtYXhAMI
DXライブラリからSeleneに移行したみたいな人っている?
3DならSeleneがいいみたいな話を小耳に挟んだのでちょっと興味が沸いた
0257名前は開発中のものです。2011/05/07(土) 23:57:59.16ID:2sm8OEH5
2.xの頃はたまに聞いたけど今はどうなんだろう
0258名前は開発中のものです。2011/05/08(日) 00:06:46.40ID:wp3inFii
DXライブラリに慣れてるならそのままがいいんじゃないかな
感覚そのままで3Dに以降できるし

昔selene使ってみようとしたことがあったけど、
色々用意されすぎてて独自ルール満載のseleneプログラミングを勉強しなおす事になっちゃう
0259名前は開発中のものです。2011/05/08(日) 01:22:47.21ID:6B61UFdu
ちょっと見てみたけど確かに難しそうだったな。
やっぱ慣れてるほうのがいいか。ありがとう。
0260名前は開発中のものです。2011/05/08(日) 02:26:03.19ID:Q+cfEXU/
dxライブラリで物足りなくなったら大人しくdirectx直叩きに移行するかなぁ
■ このスレッドは過去ログ倉庫に格納されています