DXライブラリ 総合スレッド その10
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2011/08/18(木) 17:18:15.54ID:vXmrN4yDGUIのゲームを比較的容易に作成する事を可能にする、
「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/
DXライブラリ 総合スレッド その8
http://hibari.2ch.net/test/read.cgi/gamedev/1301818631/
DXライブラリ 総合スレッド その9
http://hibari.2ch.net/test/read.cgi/gamedev/1310904069/
0666名前は開発中のものです。
2011/10/21(金) 02:28:32.01ID:t8hNPMG7もしかしてシューティングじゃなくて誰が誰を撃ったという個別の情報が必要なゲーム?
0667名前は開発中のものです。
2011/10/21(金) 03:18:32.28ID:MUfO00Uh弾側で予め、まっすぐ飛ぶとか追尾型にするとか書いとけば敵の情報なんてなくても大丈夫じゃないかね。
0668名前は開発中のものです。
2011/10/21(金) 03:24:33.18ID:ulHEmmjD0669名前は開発中のものです。
2011/10/21(金) 04:22:14.95ID:wVgcNoB4別に区別しなくても出来てはいるんだが、設計上気になってしまって
敵が弾を持っている、という感じの設計の方がしっくりくると思った
0670名前は開発中のものです。
2011/10/21(金) 05:24:20.61ID:tO6m+30s今はキャラも弾もいっしょくたに扱ってる。
ぶつかればミスなのはどっちも同じだし。
0671名前は開発中のものです。
2011/10/21(金) 05:36:24.16ID:MUfO00Uh>>663と話が違うぞ。区別しなくてもできてるならどっちでもいいじゃん。
気持ち悪いから変えたいと思うなら、勝手に変えればいいだけで…。
まあ普通は敵の中に弾を入れとくと思うよ。
でも基本は当たり判定のときくらいしか外部で使わないし、
使用中の弾のポインタ配列でも作ってまとめるんだろうから結局変わらん。
0672名前は開発中のものです。
2011/10/21(金) 07:51:58.35ID:t8hNPMG7敵が破壊された時に一緒に弾も消えるなら敵の中に弾を入れてもいいと思うが
破壊されても弾が残るなら別にした方がいいだろ
無効になった敵が有効な弾を持つのは気持ち悪い
0673名前は開発中のものです。
2011/10/21(金) 11:09:06.52ID:uHW2SoLCclass Enemy;
class EnemyShot {
Enemy *Parent;
};
これでOK
0674名前は開発中のものです。
2011/10/21(金) 14:50:23.43ID:vWzbzG0Qメモリ効率優先なら>>665のように弾(子)→敵(親)にする
0675名前は開発中のものです。
2011/10/21(金) 15:38:35.67ID:9n5gcIHL敵1に、敵2および弾1-1へのポインタを持たせておき、
弾1-1には弾1-2を、弾1-2には1-3のポインタを持たせる感じ?
で、その親の分の弾が最後まで行ったら、敵2に移動すると。
0676662
2011/10/21(金) 21:13:43.58ID:vqRrJukR>>635
できました。
http://gmdev.xrea.jp/st/up/508.zip
0677名前は開発中のものです。
2011/10/21(金) 21:19:49.24ID:K7LT8F/V0678名前は開発中のものです。
2011/10/22(土) 02:04:27.01ID:mPz1vwEsそんな感じ
実際は判別用のIDを持たせて敵も弾も一緒くたにして木構造にしちゃう
敵同士の親子関係とかもまとめて制御できて楽
0679名前は開発中のものです。
2011/10/22(土) 02:12:44.51ID:qkOP/vfvひでぇw
0680名前は開発中のものです。
2011/10/22(土) 02:53:49.60ID:/atD1jToこれもリストってやつ?
このポインタからEnemyの情報が得られるのか
リストとか使い所あるのか?とか思ってたけど案外使うのか
0681名前は開発中のものです。
2011/10/22(土) 02:58:06.91ID:qkOP/vfv便利なのに
0682名前は開発中のものです。
2011/10/22(土) 02:59:13.24ID:SGpgUhL1数字並べてどうするのかと。
0683名前は開発中のものです。
2011/10/22(土) 03:00:20.79ID:IYWntjWlポインタとかもだけど
0684名前は開発中のものです。
2011/10/22(土) 03:15:14.51ID:F2lqPL1Yポインタが分かりにくいと言われるのは、
この乖離によるものじゃないかなあと。
0685名前は開発中のものです。
2011/10/22(土) 03:17:27.67ID:qFvgq351この2つを同時に行う場面はそう少なくない
0686名前は開発中のものです。
2011/10/22(土) 03:26:59.12ID:SGpgUhL1いや普通、ソートとかってさ、データベースで、データ本体があってキー項目があってキーにしたがってソートする、
って時に使うと思うんだが(それなら初見でも使い方が解る)
listの解説って、そういうとこの説明がすっぱり無いからさぁ……w
0687名前は開発中のものです。
2011/10/22(土) 03:47:17.91ID:qkOP/vfvlistは付けたり外したりが容易で、何でもくっつけられるぐらいに思ってたらいつか使い道が閃くんじゃね?
ソートが分かり易いなら2分木について調べてみるといーよ。
0688名前は開発中のものです。
2011/10/22(土) 03:52:29.84ID:IYWntjWlそれ以外だとlist使えば便利だっていうシーンは浮かぶけど、普通の配列でもゴリ押しできちゃうんだよなぁ
0689名前は開発中のものです。
2011/10/22(土) 04:20:16.27ID:SGpgUhL1キャラIDの上限を65535と限定した上で
ソートキー*65536 + キャラID の数値をlistに登録してソート後、順読みしてキャラIDを取り出すというやり方。
0690名前は開発中のものです。
2011/10/22(土) 04:51:53.25ID:+oARSexF#define TAMA_MAX 500
Tama tama[TAMA_MAX];
とかにして、死んだ弾の配列番号に新しい発射弾を割り当ててたんだったかな…
0691名前は開発中のものです。
2011/10/22(土) 06:08:14.19ID:DgF9JFPy0692名前は開発中のものです。
2011/10/22(土) 06:46:30.52ID:qFvgq3510693名前は開発中のものです。
2011/10/22(土) 09:52:00.31ID:ikh+dn5nリストじゃなくてただの参照保持だよ
というか連結リストのことだよね?皆std::listについて言ってるようだが
0694名前は開発中のものです。
2011/10/22(土) 18:17:17.68ID:ZKX5/niHまぁlistは名前の通りリストなんだからいいんじゃね?
これがきっかけでSTLに興味が湧く人がいればそれはそれで良い事だし
一部ゲームプログラマがSTLに否定的なおかげで意味も理解せずにSTL拒否してる人が多いからねぇ
0695名前は開発中のものです。
2011/10/22(土) 18:28:35.70ID:HVfE8HRXlist知らなくて毎回頭から生死を判別して探してた
このスレ勉強になります
0696名前は開発中のものです。
2011/10/22(土) 19:16:02.25ID:qkOP/vfv逆よ逆。
理解できないからSTL拒否してるだけ。
理解してしまったら涙がちょちょぎれるようになるって。
俺含めて周りでもそうだったし。
0697名前は開発中のものです。
2011/10/22(土) 19:17:22.45ID:qkOP/vfv0698名前は開発中のものです。
2011/10/22(土) 19:44:08.28ID:bZhHqe5WSTLなんか使うより高速に動作する
STL使うやつは甘え
0699名前は開発中のものです。
2011/10/22(土) 19:58:47.02ID:ZKX5/niHSTLってのは誰がどのアルゴリズムを使っても同じようなコードになることを目指してる
STLなんかよりも自作でそれ以上のモノを用意できる、じゃなくて
STLで書けるものを自作で用意しちゃいけないって思想なの
だからSTLはパフォーマンス第一の一部ゲームプログラマとは相性が悪い
ただコンシューマ機ならともかくPC上のプログラムでは基礎ルーチンのパフォーマンスなんて
STLの生産性や可読性に比べたら大したアドバンテージにはならんのよ
0700名前は開発中のものです。
2011/10/22(土) 19:59:30.01ID:3iUmeXi80701名前は開発中のものです。
2011/10/22(土) 20:07:21.03ID:hsUqQCic0702名前は開発中のものです。
2011/10/22(土) 20:17:51.04ID:yNhAUSuWカスタムアロケーターで効率あげることも出来る
0703名前は開発中のものです。
2011/10/23(日) 02:11:48.85ID:aDG/82X00704名前は開発中のものです。
2011/10/23(日) 02:15:05.20ID:EpLSs4MY固定長で使ってるからコンテナ特有のメリットは、クラスのソートが楽ってのしかないけど
0705名前は開発中のものです。
2011/10/23(日) 02:34:10.84ID:q0rLq02Hfor_eachはstd::for_eachではなくマクロfor_each使ってる
0706名前は開発中のものです。
2011/10/23(日) 02:58:41.99ID:pz6422oS0707名前は開発中のものです。
2011/10/23(日) 04:55:16.52ID:H16uvnRo最大数が決まってるなら、ぶっちゃけ配列+空席を探す方法でも全く問題ないと思うんだ
0708名前は開発中のものです。
2011/10/23(日) 05:24:26.86ID:HxRN3u3cで済む処理をわざわざ
for(i=0;i<TAMA_MAX;i++){
if(flase==TamaArray[i].alive()){
TamaArray[i]=tama;
break;
}
}
みたいに書くのを問題ないと思える感覚が理解できん
0709名前は開発中のものです。
2011/10/23(日) 05:34:45.00ID:Iq8X7k2C0710名前は開発中のものです。
2011/10/23(日) 05:50:40.06ID:HxRN3u3cそもそもarrayとlistの比較なんだから処理内容が等価じゃないのは当たり前の話だぞ
(条件的にはlistの方がはるかに効率的、だからこそ>>695はlistを知って勉強になったと書いたのだろう)
あとタブ入れ忘れてスマン
0711名前は開発中のものです。
2011/10/23(日) 06:29:11.65ID:HxRN3u3clist使えば単純に要素を追加するだけで済む処理と
要素をプールしてある配列から空き要素を探して割り当てる必要がある処理(最大でMAX弾数分のループを回すことになる)
を比較して後者が全く問題がないと思える感覚が理解できない
これで納得行くかな?>>709
0712名前は開発中のものです。
2011/10/23(日) 06:59:14.61ID:yvtRntYMあとCしか触ってない人には後者の方が分かりやすいのかもしれん
0713名前は開発中のものです。
2011/10/23(日) 08:18:12.36ID:0FCuyesWC++は覚えた方が楽な記述が山ほどあるけど、それがキリがないほどあるから
適当なところで見切りをつけたらいいと思うよ。
0714名前は開発中のものです。
2011/10/23(日) 09:02:08.96ID:H16uvnRo個人的には、自分で使うならlist、初心者に教えるなら配列の方が楽かなー?くらいの感覚ではあるんだが、
ちゃんとしたライブラリがあるならコード量はあんまり変わらん気がするw
0715名前は開発中のものです。
2011/10/23(日) 16:38:44.18ID:SnONx3QbC++と、C++ + SLTはある意味別言語、という気がするんだよね。
理解できなくは無いんだけど。
boostにいたっては宇宙語かと。
0716名前は開発中のものです。
2011/10/23(日) 16:42:47.09ID:pz6422oSboostは楽なんだけど、
両方ともテンプレート知らなかったらとっつきにくいかもね。
0717名前は開発中のものです。
2011/10/24(月) 01:16:59.60ID:IlPzsgZCソース見てないから、オブジェクトを削除した場合に削除されたオブジェクトが何処に行くのかが分からないから、
なかなか使う気になれないんだよな。というか、メモリーの虫食い現象が怖い。
0718名前は開発中のものです。
2011/10/24(月) 01:23:31.15ID:VB5f9hdJアロケータをカスタマイズするといいよ。
0719名前は開発中のものです。
2011/10/24(月) 01:24:21.91ID:qTM7J/mG気になる人はアロケータ自作するんだろうけど
0720名前は開発中のものです。
2011/10/24(月) 01:28:02.40ID:hYGIuJD+よっぽどの理由がない限りSTL使った方がいい
0721名前は開発中のものです。
2011/10/24(月) 01:29:35.42ID:n26WoNnLオブジェクトへのポインタをSTLのコンテナに
0722名前は開発中のものです。
2011/10/24(月) 01:39:52.58ID:qTM7J/mG要求されるコンテナサイズの統計取って大きい方から1割を除外したときの最大サイズが収まる64の最小の倍数を基礎サイズにする
このサイズ以下については予めプールしたものから固定サイズ分割り当てる
実体がすべて同じサイズになるので再配置しなくても未使用領域が発生しない
それ以上については普通に割当
>>720
え??????
0723名前は開発中のものです。
2011/10/24(月) 02:03:14.01ID:W9q8gtOV0724名前は開発中のものです。
2011/10/24(月) 02:19:13.48ID:VB5f9hdJ0725名前は開発中のものです。
2011/10/24(月) 02:21:01.73ID:IlPzsgZCで、削除したオブジェクトはインデックスリスト(vector形式)から除外して、
再取得した場合に削除リストからインデックスを取得して再利用してる。
昔はもっと面倒なやり方をしていたけどな。
GlobalAllocのGHNDフラグを多用してWindowsに処理を任せたり、
自前でガーベージコレクションを自作したりと、色々試した。
まあ、この辺りの処理は別の事に役立ててるけどな。
0726名前は開発中のものです。
2011/10/24(月) 02:35:16.81ID:IlPzsgZC0727名前は開発中のものです。
2011/10/24(月) 03:11:42.90ID:W9q8gtOV0728名前は開発中のものです。
2011/10/24(月) 07:29:09.21ID:RSO5kvKZゲーム作る為にプログラムやっていて且つDXライブラリを使っている人間
の観点で語って貰えることが多いのでここだと助かる。
0729名前は開発中のものです。
2011/10/24(月) 10:22:31.38ID:hYGIuJD+そうやってドヤ顔で自作アロケータ自慢してくる奴腐るほどいるけど劣化STL劣化boost以外見たことないわ
バグ多いし
0730名前は開発中のものです。
2011/10/24(月) 10:31:41.63ID:yux8u5hn自作する事自体が悪いわけじゃないんじゃ。
0731名前は開発中のものです。
2011/10/24(月) 12:44:11.11ID:TYu8v8IBその「本人の能力」と不釣り合いなアピールしている人が多い
という意味でしょ。
しゃーないっちゃしゃーない。
作ったものを見てもらいたいって気持ちは誰にでもあるからな。
0732名前は開発中のものです。
2011/10/24(月) 13:31:08.18ID:/vq0MG0p0733名前は開発中のものです。
2011/10/24(月) 13:46:04.12ID:VB5f9hdJしかし、new、deleteでもタイム計ると遅いけど
操作に支障が出るようなことは無い。
昔は自前で作ってたけど、いろいろと面倒なのでいまはそのまま使ってる。
0734名前は開発中のものです。
2011/10/24(月) 13:56:10.25ID:yux8u5hn>その「本人の能力」と不釣り合いなアピールしている人が多い
>という意味でしょ。
それは>>729の意味だろう。
730は元々の>>720について言っている。
それとも>>720も不釣合いなアピールについて言っているのか?
俺には720自身が以前自作したけどバグ多くて使い物になりませんでした、と言ってるようにしか読めなかったが。
0735名前は開発中のものです。
2011/10/24(月) 14:26:43.45ID:hYGIuJD+なんで>>729の補足を無視して>>720について言及する>>730を>>729の後に書いてんの?
0736名前は開発中のものです。
2011/10/24(月) 14:47:19.52ID:yux8u5hnが、722が既に書いていたので俺は書かなかった。
で、729は720の補足だなんて言ってるが、とてもそうは読めない。単に後出しで722をけなしてるだけ。
だから改めて720の内容がおかしいんだよ。と730で言っている。
0737名前は開発中のものです。
2011/10/24(月) 15:08:01.73ID:7cQfiH3Zそんなこと明らかになってもだれもどうでもいい
0738名前は開発中のものです。
2011/10/24(月) 17:56:21.08ID:xi0yLIbX0739722
2011/10/24(月) 19:56:44.20ID:niSNoLvS他の人がどうやってるのか知りたいから
具体的な数字出すのはより具体的な話をしたいから
概念的な話はゲーム作ってない人でも語れるからね、俺は実際に作ってる人の話が聞きたい
>>720
思いっきり言葉足らずだったかな
STLってアロケータの自作許容されてると思ってたんだけど俺の思い違い?
いや、STL含めたアロケータ自作について語ってるつもりだったのにSTL使えって書かれてたんで??????ってなった次第
デフォルトアロケータのこといってるのかと思ったら今度はboost持ち出してるしちょっと考えの軸が分からない
0740名前は開発中のものです。
2011/10/24(月) 20:22:01.23ID:niSNoLvS弾幕亜流
128〜4Mbyteまでのオブジェクトを最大同時10000程度制御する必要があり、且つ処理落ちしないように瞬間的な処理の集中を防ぐ必要がある
一応簡単に差し替え出来るようにしてあるんだけど、なぜかグラフィックがボトルネックになるはずのノートの方が処理が軽くなったように感じるらしい
まぁ実際プラシボでもいいんじゃないかと思ってる。所詮自己満足の世界だから
0741名前は開発中のものです。
2011/10/24(月) 22:09:59.73ID:5ZMwlQz5素朴な疑問でごめんなさい
0742名前は開発中のものです。
2011/10/24(月) 22:21:35.19ID:W9q8gtOVどういう状況?
0743741
2011/10/24(月) 23:08:52.32ID:5ZMwlQz5LGPLでライセンスされたコードを再利用しているので・・・
配布する際にはLGPLでライセンスしなければいけないのかなと。
0744名前は開発中のものです。
2011/10/25(火) 00:08:26.56ID:dsEM5TFd0745名前は開発中のものです。
2011/10/25(火) 00:16:36.14ID:NwOANeBB0746名前は開発中のものです。
2011/10/25(火) 00:17:28.04ID:9iYuBzfA0747741
2011/10/25(火) 00:39:42.23ID:iip0S10Kスレ汚ししてすいませんでした。
0748名前は開発中のものです。
2011/10/26(水) 02:12:07.14ID:FLzDEymiやらせてくれよ
0749名前は開発中のものです。
2011/10/26(水) 02:16:24.67ID:5duE8WUUDLsiteで売ってるどれかだから頑張って探してね
0750名前は開発中のものです。
2011/10/26(水) 02:18:10.32ID:AXUv7/2Y0751名前は開発中のものです。
2011/10/26(水) 02:25:43.26ID:ACOPkdjG0752名前は開発中のものです。
2011/10/26(水) 02:26:04.82ID:W3KhGi2V0753名前は開発中のものです。
2011/10/26(水) 05:14:38.72ID:vqE7eW/U0754名前は開発中のものです。
2011/10/26(水) 07:42:57.59ID:QnNhHmLc0755名前は開発中のものです。
2011/10/26(水) 07:45:15.68ID:4gveLsHh全部テクスチャに描いてそれを画面としてウィンドウのサイズで描画する
0756名前は開発中のものです。
2011/10/26(水) 07:56:49.51ID:vqE7eW/U気にしない。
環境によってはって、それディスプレイの画素数とゲーム画面の解像度の食い違いによるぼやけじゃないの?
だとしたらどうしようもないのでは。
0757名前は開発中のものです。
2011/10/26(水) 07:58:42.44ID:4gveLsHh0758名前は開発中のものです。
2011/10/26(水) 10:23:22.23ID:VfSTw45f0759名前は開発中のものです。
2011/10/26(水) 10:31:50.54ID:vqE7eW/Uこれ引数doubleだな……。
0760名前は開発中のものです。
2011/10/26(水) 11:00:43.97ID:VfSTw45f0763名前は開発中のものです。
2011/10/26(水) 12:32:40.30ID:4gveLsHh0764名前は開発中のものです。
2011/10/26(水) 12:33:18.45ID:QnNhHmLc0765名前は開発中のものです。
2011/10/26(水) 16:16:58.80ID:W3KhGi2Vやっぱり2Dゲームが作りたくなって、DXライブラリに戻ってきたよ(`・ω・´)
>>764
スカイハーイ! とでも言っておけば二重のお礼でも大丈夫。たぶん。
■ このスレッドは過去ログ倉庫に格納されています