トップページ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/
0100名前は開発中のものです。2011/04/11(月) 17:51:04.38ID:FsEy3yEO
>>99
日本製で日本語のドキュメントも豊富だからに決まってんだろ
なんでわかんないんだよ
0101名前は開発中のものです。2011/04/11(月) 18:15:17.14ID:e2JQSGvd
>>99
DXライブラリに3D機能が求められてないからだろ
小学生レベルの知能かお前は
0102名前は開発中のものです。2011/04/11(月) 18:49:31.10ID:d8BKDvoI
初めて作るゲームがいきなり3Dとかはあんまり無いからな
2Dのゲームを作るのにDXライブラリが役立つからだろ…
0103名前は開発中のものです。2011/04/11(月) 18:58:01.86ID:Lbneg8L3
3D酔いするから、3Dグリグリのゲームはだめだわオレ
SFCのマリオカートですら酔うんだぜ・・・
0104名前は開発中のものです。2011/04/11(月) 19:24:30.05ID:kYpvBb3T
作者さんは、2D機能はもう十分完成しているという考えなのかも。
だから3D機能の拡充に動いてるんじゃないかな。

あと、ゲ製で海外とか外国とか言ってるレスはスルーが吉。
0105名前は開発中のものです。2011/04/11(月) 19:26:38.11ID:c9gNIEgd
2Dゲームでも3Dデータ使うこと多いし求められてないってことはないだろ
0106名前は開発中のものです。2011/04/11(月) 19:51:21.79ID:SprE+/oI
>>105
そういう意味じゃないだろ
0107名前は開発中のものです。2011/04/12(火) 19:11:07.88ID:gm9+f4H+
宇宙の車窓から
https://www.zeta-uploader.com/907627360
0108名前は開発中のものです。2011/04/12(火) 19:57:58.48ID:T4xJEJ79
残念ながら日本製のゲームライブラリではdx以外選択肢はないきがする
pygameとかのほうが使いやすいんだけどはやりそうにないし
日本語資料が豊富かどうかが重要だと思います
ライブライぐらい自分で調べろ そういわれてもこちとら趣味なのでそこまで必死になって
プログラミングしたいわけじゃございません
0109名前は開発中のものです。2011/04/12(火) 20:02:08.96ID:DbM5dHPv
>>107
DXライブラリ製の3Dの惑星シミュ?
よぅわからん
0110名前は開発中のものです。2011/04/12(火) 20:42:06.16ID:TktYD3Qf
>>108
pygameってコミュニティあるの?
日本語か英語でいいのがあったら教えてくれ
0111名前は開発中のものです。2011/04/12(火) 20:50:30.16ID:4b82tHbl
CでもDirectXでもライブラリでもない
スレチにも程がある
0112名前は開発中のものです。2011/04/12(火) 20:55:51.64ID:DbM5dHPv
よくかんがえるとそうだな
ここは有数のライブラリの中からDXライブラリを使うことを選んだ人が語り合ったりするスレだったな……
0113名前は開発中のものです。2011/04/12(火) 21:01:12.95ID:TktYD3Qf
まぁ、IronPythonならDXライブラリを使えるけどな
0114名前は開発中のものです。2011/04/13(水) 04:48:27.15ID:rcUZUfYC
プログラミング初心者丸出しの質問で申し訳ないんだけど、DXライブラリの中身って結構高度なのかな
こういうライブラリも(つくろうと思えば)自分で作れるくらいの技術がないとプロにはなれないんだろうか
0115名前は開発中のものです。2011/04/13(水) 05:05:49.90ID:aWOXGcsg
>>114
DXライブラリレベルのライブラリを作れるようになる必要はない
けど、少なくとも自分が欲しい機能を持っただけのライブラリは自作できないとウチの会社では採用しないよー、
って、知り合いのそれ系プログラマーが言ってた

その人も趣味ではDXライブラリ使ってるんだけどね
0116名前は開発中のものです。2011/04/13(水) 06:42:44.51ID:rcUZUfYC
>>115
遅くてもいいから自分でDXライブラリと同じような機能を実装できるようになればって感じなのかな
参考になったよ!ありがとう
DXライブラリもどきを目標に勉強するよ
0117名前は開発中のものです。2011/04/13(水) 10:57:08.34ID:zfcjWNr6
>>114
ライブラリに頼らないで開発できるようじゃないとプロは厳しいぞ
特にコンシューマは、DirectXすら使えないし、CPU制御やハードウェア知識も要る
初心からこんなライブラリに頼ってる奴はメモリ管理なとのきちんとしたプログラム作法身に付かないからプロから嫌われる
プロ目指すなら楽を覚えちゃいけないよ
0118名前は開発中のものです。2011/04/13(水) 11:43:18.98ID:Rx+Ij9vi
まともなfps管理を導入したらすごく安定してワロタ
0119名前は開発中のものです。2011/04/13(水) 12:07:31.27ID:zgQUEsgk
定期的に出てくるな、こうやって脅しつける奴
0120名前は開発中のものです。2011/04/13(水) 12:14:03.20ID:/WZ6t+3A
で、FPS管理はどうやるのが正解?
0121名前は開発中のものです。2011/04/13(水) 12:44:47.71ID:Rx+Ij9vi
いや、俺がアホだっただけなんだ。
1フレームごとに処理時間を計って、スキップ判定をしていたのを
10フレームごとの平均処理時間を計って、その平均処理時間がお望みの値になるまで
描画スキップするという処理にしたら、とても安定したんだ。
0122名前は開発中のものです。2011/04/13(水) 21:09:49.99ID:Alw0DeH0
「そのフレームの処理時間」の部分を、
まるっと「過去10フレームの平均処理時間」に置き換えたと。
0123名前は開発中のものです。2011/04/14(木) 18:09:18.15ID:MaJ4GcR6
教科書の最初の方

https://www.zeta-uploader.com/986096854
0124名前は開発中のものです。2011/04/16(土) 02:50:25.02ID:ulFWayBp
ファイアーエンブレムみたいに四角のユニットを動かしていくゲームを作っているんだけど

移動範囲を描画するのに何か良い方法、というか方針的なものを教えてくれまいか…


2次関数x,yに◇の領域で、 y > x + a, .y < -x + .... のとき描写とかしてたんだが…

障害物とか敵があって通り越せないとか、回り道とかでもうだめぽ
0125名前は開発中のものです。2011/04/16(土) 02:54:25.85ID:4owT9/BC
移動可能なマスを予め計算しておいて配列に記憶しておく。それをただ描画する。
再帰とか使って一マスずつ移動するのをシミュレートすると楽。
0126名前は開発中のものです。2011/04/16(土) 03:00:00.83ID:ulFWayBp
やはりシュミレートれすか…

再起全然わからない…勉強しまふ…
0127名前は開発中のものです。2011/04/16(土) 08:31:12.65ID:qarthL8U
画像処理でのペイントアルゴリズムと同じだろ
0128名前は開発中のものです。2011/04/16(土) 08:37:11.71ID:GY8CVJ3z
フラッドフィルアルゴリズムだな
0129名前は開発中のものです。2011/04/16(土) 09:06:28.54ID:hCKgU9/K
http://gumina.sakura.ne.jp/CREATION/OLD/MAKING/index.html
http://www.jyouhoukaiseki.com/index.html
http://www5f.biglobe.ne.jp/~kenmo/program/program_ind.htm

がんば
0130名前は開発中のものです。2011/04/16(土) 14:26:17.59ID:zRkC83jb
前スレ>>919さん、DXライブラリでのgifアニメの再生の件、
教えていただいてありがとうございました、再生できました。
諸事情でお礼が遅れてしまいすみませんでした。
0131名前は開発中のものです。2011/04/16(土) 16:54:28.28ID:9IOgkMP1
DXライブラリを使おうと思っているんだけど
スーファミくらいのゲームを実行できる速度なの?
それの起動時間ってどれくらい? 教えてくださいおながいします
0132名前は開発中のものです。2011/04/16(土) 16:58:04.86ID:4j0D+UWL
エミュレーターじゃねぇよ
0133名前は開発中のものです。2011/04/16(土) 17:58:38.08ID:ovxQ+vo4
パソコンの環境にもよるけど余裕だろ。
起動は一瞬だけど遊べる段階に行くまではローディングの仕様による。
0134名前は開発中のものです。2011/04/16(土) 18:19:55.77ID:9IOgkMP1
>>133
DXライブラリ使おうと思います
あざました
0135名前は開発中のものです。2011/04/18(月) 02:01:00.18ID:t/XaY7Qs
アンチエイリアスきた。
0136名前は開発中のものです。2011/04/18(月) 12:44:28.01ID:wEqGQNkO
なんか最近紹介ページが賑やかになってきてるな
段々流行ってきてるのかね
0137名前は開発中のものです。2011/04/18(月) 21:35:53.90ID:6Cm3Hqba
紹介だけじゃなくてゲーム自体もアップできればいいのに
0138名前は開発中のものです。2011/04/18(月) 21:41:18.14ID:Jo7OWMfx
サーバが死ぬw
自サイトへの誘導がメインだと、サイトも見てもらえるし今のままでいいと思うけど
0139名前は開発中のものです。2011/04/19(火) 16:58:10.21ID:OCzKiVRH
描画関数の並び順を入れ替えるする方法をしりたいんだけど
クイックソート?する方法が分からない
とある掲示板でも同じような質問があったんだけどチンプンカンプン
0140名前は開発中のものです。2011/04/19(火) 16:59:07.36ID:Xq/yrqsF
めんどっちいからソートの為だけに配列にvector使ってる自分
0141名前は開発中のものです。2011/04/19(火) 17:05:25.51ID:6c2Cx/Vz
Cのライブラリにqsortってのがあるからそれを使う。関数名で調べるといいよ。
0142名前は開発中のものです。2011/04/19(火) 17:06:08.73ID:zOELGc23
クイックソートなら標準ライブラリにあるやん
0143名前は開発中のものです。2011/04/19(火) 17:16:39.68ID:OCzKiVRH
…y座標が大きい順に並べたいんだけど、どうやって比較しよう?
今までは単純に数の大きさでソートしてたんだけど
画像って描画する為に一つ一つ違う変数を使うじゃん?
それの比較の仕方が分からない 配列を使うのか? 教えてくだちい
0144名前は開発中のものです。2011/04/19(火) 17:29:57.95ID:hqIQjP2u
違う変数を使うって、同じ変数をどうやってソートしてたんだよ
0145名前は開発中のものです。2011/04/19(火) 17:34:40.07ID:9kGY7UMm
int GetGraphSize( int GrHandle , int *SizeXBuf , int *SizeYBuf ) ;

この関数を使えば読み込んだ画像のxとyが得られるぞ
0146名前は開発中のものです。2011/04/19(火) 17:40:38.10ID:Xq/yrqsF
y座標っていうのは描画位置のことで画像の幅ではないと思う

ググったけどこれかな
http://simd.jugem.jp/?eid=116
まず1つのオブジェクトの情報は1つの構造体にまとめるべきだと思う
0147名前は開発中のものです。2011/04/19(火) 18:20:14.16ID:OCzKiVRH
すいません 100%私の言い方が悪かったです 具体例をあげます
LoadGraphScreen( ch.x , ch.y , "test1.bmp" , TRUE ) ;
LoadGraphScreen( tk.x , tk.y , "test2.bmp" , TRUE ) ;
この2つのy座標を比較する方法を知りたいのです
0148名前は開発中のものです。2011/04/19(火) 18:21:50.53ID:OCzKiVRH
多分、自己解決しました
0149名前は開発中のものです。2011/04/19(火) 18:26:31.16ID:OCzKiVRH
やっぱり自己解決してませんでした
2つの関数のy座標だけを比べて並び替える方法を教えてください
0150名前は開発中のものです。2011/04/19(火) 18:31:53.75ID:9kGY7UMm
ch.yとtk.yを比べたいのかch.y+test1とtk.y+test2を比べたいのか
0151名前は開発中のものです。2011/04/19(火) 18:36:20.52ID:OCzKiVRH
ch.yとtk.yを比較して関数の並びを入れ替えるということです
0152名前は開発中のものです。2011/04/19(火) 18:39:49.00ID:6c2Cx/Vz
普通は座標やグラフィックハンドルを一つの構造体に入れて、その配列にqsortをかけたりするんだけど
0153名前は開発中のものです。2011/04/19(火) 18:42:34.51ID:hqIQjP2u
構造体が分からないと流石に難しいだろうな
0154名前は開発中のものです。2011/04/19(火) 18:43:28.80ID:OCzKiVRH
座標をソートすれば関数自体がソートされるのでしょうか?
0155名前は開発中のものです。2011/04/19(火) 18:47:31.55ID:9kGY7UMm
LoadGraphScreen( 10 , 10 , "test1.bmp" , TRUE ) ;

こういう風に直接数字を入れてる?
0156名前は開発中のものです。2011/04/19(火) 18:51:57.29ID:OCzKiVRH
いいえ、yやxといった変数で表示しています
0157名前は開発中のものです。2011/04/19(火) 18:56:21.21ID:hqIQjP2u
言うまでもなく、座標をソートしても関数はソートされない
せめてソートする座標と画像の情報(この場合は名称?)を関連付ける必要があるよ
だから素直に構造体を学びなさい
0158名前は開発中のものです。2011/04/19(火) 19:00:35.35ID:9kGY7UMm
変数にしてるならx[loop]みたいな感じでできそうだけれども
0159名前は開発中のものです。2011/04/19(火) 19:01:26.07ID:OCzKiVRH
Cの勉強はしたので構造体は分かるのですが
関連付けってのがよく分からないです
せめて関連付けのヒントやサイトを教えてください
0160名前は開発中のものです。2011/04/19(火) 19:13:05.46ID:9kGY7UMm
関連付けは別にプログラムとかじゃないよ。ただ座標を構造体の変数にするだけ

typedef struct{
int x;//x座標の値
int y;//y座標の値
char *name;//画像の名前
}TEST;

TEST base[2];
for( i=0; i<10; i++ ){
LoadGraphScreen( base[i].x , base[i]y ,*base[i].name , TRUE ) ;
}

こんな感じ。ソートは>>146
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
関数のぶんだけというか描画する画像の分だけ構造体をつくるんだな
■ このスレッドは過去ログ倉庫に格納されています