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

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2011/07/17(日) 21:01:09.54ID:J1CqPxml
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/
DXライブラリ 総合スレッド その8
http://hibari.2ch.net/test/read.cgi/gamedev/1301818631/
0055名前は開発中のものです。2011/07/18(月) 10:26:57.13ID:+q3Ivu8t
>>54
dクス。
printfDx関数が悪いみたい。

とりあえず再現コードと環境書いて良しとしますわww

http://codepad.org/pwhkNEDT
0056名前は開発中のものです。2011/07/18(月) 13:22:59.68ID:YqLXuDXm
このスレでDXライブラリの話題が流れてる・・・だと!?
0057名前は開発中のものです。2011/07/18(月) 13:37:56.70ID:Ze+SWbq9
winXP,VC++2008,3.05e軽量版の組み合わせだが今のところ問題なし
>>55のも落ちないよ
0058名前は開発中のものです。2011/07/18(月) 15:34:52.58ID:8Mxjg/u/
俺も55の試してみたけど別に落ちないね。
XPで、BCC。
0059名前は開発中のものです。2011/07/18(月) 16:02:31.68ID:N3hWgd0m
>>33
boostのシリアライズ使ってる
xmlで入出力やってるけど最終的にはバイナリかな
0060名前は開発中のものです。2011/07/18(月) 16:27:00.25ID:yhK/I0ji
>>33
お手製バイナリ入出力のみ。
0061名前は開発中のものです。2011/07/18(月) 17:44:02.33ID:rWgZZvtf
tset
0062名前は開発中のものです。2011/07/18(月) 20:01:12.02ID:+Rj03r8W
>>52
別のスレで何年かサッカーゲーム作ってる人はいるよ
俺がもっとも尊敬する個人製作ゲームプログラマの一人
0063名前は開発中のものです。2011/07/19(火) 02:01:03.43ID:GHPcOYFF
やっぱ何年も続けることはすごいことなのか

今作ってるの諦めてしまいそうだな
0064名前は開発中のものです。2011/07/19(火) 02:02:31.46ID:7gtAkdk2
何年かかっても完成してない、とも言えるけど、本当に趣味でやってるんだろうなぁ
仕事帰りにちまちま進めてたり 楽しそう
0065名前は開発中のものです。2011/07/19(火) 02:05:07.46ID:cCNbrd8E
SQLiteか、それいいな
データ作る方のコードも楽そうだし
このスレ見る利点の一つはこういう知らない部分の世界の一部がチラチラ見えることだな
0066名前は開発中のものです。2011/07/19(火) 02:07:56.39ID:jELmaont
3年目に突入した俺が通りますよっと

早々に挫折するか長期戦になるかはほんの微妙な匙加減なんだと思った
0067名前は開発中のものです。2011/07/19(火) 05:42:45.81ID:8jeveRjH
構想3年、中抜け2年10ヶ月! とかは普通にある
0068名前は開発中のものです。2011/07/19(火) 06:41:26.36ID:OqV36zim
>>63
浪人を誉めているようなもんだぞww
0069名前は開発中のものです。2011/07/19(火) 07:20:12.70ID:BGzT95YL
諦めるのでも続けるのでもなく、さっさと完成させてしまえばいい。

俺もDXライブラリ使い始めて最初のゲームは2年かかったけど、
実際はもっと作りこみたかったのを、切りのいいところで完成とした。

そして次のゲームに取り掛かったら今度は10ヶ月で完成した。

今製作中のは8ヶ月で完成が目標。

ドット絵の作成とか、どうしても時間を短縮できない部分はあるけど、
プログラム部分に関しては蓄積されていくから、完成させればさせるほど楽になってくる。
0070名前は開発中のものです。2011/07/19(火) 07:45:08.94ID:b6EN4oAS
つパイロットプログラム
0071名前は開発中のものです。2011/07/19(火) 07:54:27.33ID:kDyIkFAT
>>69
そういう所まですら行ってないで飽きちゃう人が多いと思う

・RPGならDQ3基準でアリアハンとレーベとアリアハン大陸まで作った。ダンジョンは未実装
・ACTならスーパーマリオを作った。1−1は出来た。完成。
・シューティングゲームを作った。道中で敵がちょろちょろでる。ボスが出る。1面で完成
・某ソースを丸コピして弾幕シューティングを作った。一部アレンジした。ゲームを完成させた

マップ作りやら敵の出現配置の段階で投げる人が爆増しそう
行動パターンを決めたりするプログラミングまでは頑張るが
その後のデータ入力とバランス調整で飽きるという

正直ここでプログラミングを語っている人なら、絵とBGMの工数は度外視という前提条件(ネットで入手可能な素材で済ませる)なら
2〜3ヶ月で作れるだろ。本当に語っている通りの技術力や経験があるのなら・・・
PS2やPS3クラスの市販品レベルを目指しているのなら話は別だけど
0072名前は開発中のものです。2011/07/19(火) 08:03:58.03ID:OqV36zim
RPGやSLGは中盤からUIやレイアウトと言った道筋ははっきりして
バグも出にくいがひたすら作業な部分で萎える
ACTはステージ作成
プログラマーがSTGを好むのがよく分かるw
0073名前は開発中のものです。2011/07/19(火) 11:57:35.77ID:8jeveRjH
システムとツール用意するから誰かゲーム作ってよ!って症状は割と見かけるなw
0074名前は開発中のものです。2011/07/19(火) 12:38:05.54ID:wD6kHH4M
既製素材を使うなら、STGだったら半月で1面くらいは作れるね
けど、面白いSTGを作ろうと思ったら・・・お察しw
誤魔化しきかないだけに製作センスが非常に問われるジャンルだと思う

>>73
ゲーム部分作るからシステムとツールと素材作ってよ!って方が多いと思うw
0075名前は開発中のものです。2011/07/19(火) 12:42:54.32ID:FU3SnXXK
某STGを作った時の話だが、スプライト管理とかの基礎から作り始めて、タイトル、1面、ボスという基本的な流れまで作るのに1日、
そこから完成させるまで5年かかった
かなり中抜けはあるけどそれでも実質2年以上は確実にかかってる

最初の一行をゲーム作りだと思ってるプログラマが多いのが完成まで持っていけない原因じゃないかな
ゲームの内容にもよるけど、敵配置や調整はその数倍〜数百倍手間が掛かる
あと機能を実装しているときは周りからスゲースゲー言ってもらえるけど、
調整段階になると今度は不満ばかりを聞くことになるのでモチベーションが落ちがちになりやすい
0076名前は開発中のものです。2011/07/19(火) 13:36:07.23ID:GHPcOYFF
デバッグ中にいきなり透明度30%くらいのひびの入ったブルースクリーンが出るんだが
これはいったい何なんだ

ある時間になると発生し、ある敵を倒すと直る
0077名前は開発中のものです。2011/07/19(火) 13:38:03.53ID:JRPTQBTk
せめてSS位だせよ
0078名前は開発中のものです。2011/07/19(火) 14:04:04.25ID:asO+sKKz
俺ならその「ある敵」とやらの描画コード周りを確認する。
0079名前は開発中のものです。2011/07/19(火) 14:43:22.10ID:d+X1uW+C
BSODってわけじゃないよね?
なんで画面が青みがかることをわざわざブルースクリーンなんて表現するの?
0080名前は開発中のものです。2011/07/19(火) 15:09:15.81ID:8jeveRjH
>>74
俺、内部用ツールとかだけずっと作ってたいw
顧客に出るような処理は正直やりたくない
0081 忍法帖【Lv=1,xxxP】 2011/07/19(火) 18:48:43.17ID:KNy7X+y1
ひびの入ったブルースクリーンってどんなのだ
0082名前は開発中のものです。2011/07/19(火) 20:30:24.26ID:utrGvKTj
STGの敵や弾ごとの挙動の管理がゴチャゴチャしてめんどくさすぎて、
C++のソースを書きだすGUIツールを開発してしまっている
0083名前は開発中のものです。2011/07/19(火) 20:35:39.86ID:mEYpvFPj
>>82
そして次にGUIツールを自動で操作するためのソフトを作るんですね
分かります
0084名前は開発中のものです。2011/07/19(火) 21:02:29.69ID:kDyIkFAT
>GUIツールを開発してしまっている
その画面をうp

ソースでもないし、開発ツールなんだから作りが質素でも恥ずかしく無いと思うの
本当に存在するならだけどwww
0085名前は開発中のものです。2011/07/19(火) 21:08:27.59ID:SLNwahkb
うpさせてどうするのさ。
当人には何のメリットもないと思うんだが。
0086名前は開発中のものです。2011/07/19(火) 21:09:00.38ID:utrGvKTj
>>84
なぜ疑われてるんだw
ただテキストを書きだすだけのツールじゃないかw
ちなみに開発したんじゃなくて開発中って意味だよ
0087名前は開発中のものです。2011/07/19(火) 21:15:34.98ID:6h4jmI30
>>83
それに近いことは一回やったことあるな
手順が決まってるGUI操作を特定座標の色の変化で分岐してマウス移動とクリックをするだけの単純なやつだけど
ある程度パターンが決まってるから、変えたいとこだけ事前に数値入れとけば開始ボタン1クリックで終わるからかなり楽になった
0088名前は開発中のものです。2011/07/19(火) 21:19:16.42ID:OqV36zim
>>87はわかりやすいなマクロ操作プログラムみたいなもんか

>>86はどういうツールか俺も見てみたい
テキストを書き出すというがどういう処理をさせるツールなのか
0089名前は開発中のものです。2011/07/19(火) 21:23:22.35ID:mEYpvFPj
>>86じゃないけど、スクリプトだと自由度低いから直接コードを吐かせるってだけなんじゃないかなと想像
考えてみたら俺もエクセルのVBAで似たようなことやってたわw
0090名前は開発中のものです。2011/07/19(火) 21:48:32.19ID:OqV36zim
>>89
イマイチわからん

敵の名前

弾絵
弾幕パターン
HP
みたいなRPGのモンスター設定をGUIで設定
CSV等のリストに追加みたいなツールってのは想像しやすいが

ソースで吐き出すとなるとデータじゃない別のなにかって事だよな
0091名前は開発中のものです。2011/07/19(火) 22:00:43.95ID:mEYpvFPj
>>90
例えばGUIで「弾速4.0pixel/frame、自機狙い、角度間隔20度の3way」って指定すると

Speed = 4.0;
BaseAngle = AimPlayer;
for( int i = -20 ; i <= 20 ; i += 20 )
{
 Angle = BaseAngle + i;
 CreateBullet( Speed, Angle );
}

みたいなコードを吐いてくれるってことじゃない?
0092名前は開発中のものです。2011/07/19(火) 22:00:59.04ID:YPhNnB7U
俺もエクセルVBAで列挙体とか出力できるようにしてあるわ
RPGとか作ってるとこういうのはシャレにならないくらい面倒だからなw
0093名前は開発中のものです。2011/07/19(火) 22:01:45.86ID:mEYpvFPj
おっと、2行目は
BaseAngle = AimPlayer();
かな

実際にはもっと色々と引数が必要だろうけど
0094名前は開発中のものです。2011/07/19(火) 22:04:30.96ID:utrGvKTj
>>90
書きだす先がCSVじゃなくてCPPってだけ
プログラム自体が、弾や敵の挙動はそれぞれ関数ポインタで、配列になった関数を呼んでるだけなんで、
その中身を記述するだけ だいたい>>91であってる
数値の設定やコマンドだけじゃなく、ソースの直書きも間に挟めるようにする予定

で、整理しやすいようにグループ分けとかできるようになってる
0095名前は開発中のものです。2011/07/19(火) 22:32:50.62ID:kDyIkFAT
>>91
実際にそういうのを1キャラずつソースとして出力&個別設定するの?
STGはあまり興味ないから勝手がわからないけど

     パラメーター     弾パラメーター
敵A   123456789     0(自機狙い等の種別),40,20,,3

って処理しているもんだと思っていた
0096名前は開発中のものです。2011/07/19(火) 22:51:03.42ID:xPJ+GTxa
SetWindowSizeChangeEnableFlag に true を渡して画面サイズを途中で変更したり
SetWindowSizeExtendRate に 1 以外の値を渡して画面サイズを変更すると
アンチエイリアスが利かなくなってしまいます。
何とかきかせる方法はないでしょうか?
環境はwin7です。XPの時は大丈夫だったと思うのですが…
0097名前は開発中のものです。2011/07/19(火) 22:52:33.20ID:OqV36zim
汎用性ばかり高めるとソースコードは減るが処理は重くなる

自機狙いなの?
弾速は?
角度は?
発射数は?
の値で弾パターンを生成するのではなく

計算後の物を弾幕1として登録
そして弾幕1で呼び出すという処理が必要になってくると理解してみた
だからソースとして吐き出すと
0098名前は開発中のものです。2011/07/19(火) 23:00:22.91ID:mEYpvFPj
>>95
>>97も言ってるんだけど、スクリプト処理って上手くやらないと結構処理が重くなる
STGはジャンルの特性上「低性能なPCでもいかにフレームレートをキープするか」ってのが重要になるから、
処理速度に関しては結構カツカツに組まなきゃならなかったりするw

そして汎用性を高めると柔軟性(特殊性)に乏しくなるってのもあるしね
スクリプトを併用するにしても、コード直書きできるようにはしたいところ
0099名前は開発中のものです。2011/07/19(火) 23:40:45.06ID:xPJ+GTxa
ドライバ依存のようでした。流れ読まずにサーセン
0100名前は開発中のものです。2011/07/20(水) 00:01:27.30ID:zx/NMNX+
でもシューティングでも弾によって色々な動きが欲しいし(火炎放射気、ミサイル、レーザーとか)
単純に一つの関数で済まそうとすることはなかなかできないんじゃないか?

俺は基本的な要素のデータベースみたいなのは作っておいて
あとは一つずつ関数を作っちゃうな
0101名前は開発中のものです。2011/07/20(水) 00:12:51.56ID:LJdX4cyX
俺の場合、関数化するのは「よく使うパターン」くらいかなあ
nWAYとか反射弾とか

基本的には敵の動きから攻撃パターンまで全部コード直接書いてるw
行数で言ったら数万だけど、手間的には案外大したこと無かったりするし
書くよりも、あとで手直しするときに解読する方が大変w
0102名前は開発中のものです。2011/07/20(水) 00:17:18.22ID:w+LKMFg6
>>100
火炎放射、ミサイル、レーザー、単発
まずはその種別毎に分岐
同時に何発撃つか、またその角度。弾即。

全て1つの関数で処理するか
末端の攻撃方法を1として攻撃方法1〜1000で関数として扱うのか

前者は1つの関数で何種類のも微妙な違いの弾を用意可能
後者は弾毎に関数を用意しないと駄目

どこまで処理に汎用性を持たせるかだな
弾という時点で分岐をさせるのか
火炎放射から分岐させるのか
火炎放射の発射数から分岐させるのか
角度弾速まで固定化された末端で関数として扱うのか
0103名前は開発中のものです。2011/07/20(水) 00:19:41.02ID:Uv/sL0og
割と真面目な話をすると、ここら辺はコーディングじゃなくてSTGの腕前の影響をまともに受けると思う
STGの腕があればどこを共通化してどこを差別化するかってのが容易に見当つくから
0104名前は開発中のものです。2011/07/20(水) 00:31:13.59ID:vUGfpdFc
理想は種類で細分化された関数用意して最上位で関数ポインタで同一インターフェースに纏めるのかな
C++活かすなら関数ポインタ部分を継承やテンプレート関数になるんだろうけど。
外部入力でコード自動生成はテンプレート処理と同等。
0105名前は開発中のものです。2011/07/20(水) 00:32:20.16ID:UXx1Rwux
素直にクラスで継承使おうぜ、というと前スレ後半みたいに荒れるのかなぁ
0106名前は開発中のものです。2011/07/20(水) 00:35:33.60ID:LJdX4cyX
継承でいいんじゃなかろうか。まぁ継承使わなくてもちょっとコードが汚くなるだけで組めるは組めると思うけど
MoveとAttackをそれぞれ関数ポインタとして持たせて、クラス毎にオーバーライドしてる
0107名前は開発中のものです。2011/07/20(水) 00:38:30.14ID:w+LKMFg6
>>105
そうはならないと思う

そうやって作っている>問題ない>そのうち問題があるから今すぐ改善しろ!
で荒れたが

理想論で〜しようぜ!いや〜のが良い!は
机上の空論の議論だから好き勝手にどうぞってなる
0108名前は開発中のものです。2011/07/20(水) 00:41:26.80ID:LJdX4cyX
>>107
荒れたのは、そんな小利口なやり方必要ねーだろ→いや必要だろ→ループ、って感じに見えたが
それにOOPは難しいよ派と誰でも分かる派とC++はC前提派が混ざって大混乱に陥った
0109名前は開発中のものです。2011/07/20(水) 00:45:29.82ID:phwAyEUP
俺はこうやってるぜ自慢ならいいと思う
人それぞれなのに人の方法にケチつけるから荒れる
0110名前は開発中のものです。2011/07/20(水) 00:55:44.26ID:DqIwh6Bu
机上の空論と言う事で・・・

振る舞いを機能で細分化してオブジェクトとしておく
で、弾を実装するときにそれらのオブジェクトをお好みで利用する
こんな感じにすると楽

C#ならActionだけでできちゃうからC#使いにお勧め
0111名前は開発中のものです。2011/07/20(水) 01:02:06.42ID:cozewM6U
>>108
おお、わかりやすい
0112名前は開発中のものです。2011/07/20(水) 01:06:04.99ID:b6vAzTXb
>>109が全てだな。
そもそも「ゲームが作りたくて(半ば仕方なく)プログラムをしてる」人に対して、
「プログラムの題材としてゲームを選んでる」人が作法()とか言ってたからなw
0113名前は開発中のものです。2011/07/20(水) 02:07:15.20ID:zx/NMNX+
ショットに四角とか三角の判定を持ったショットも作りたいけど
こうなると、完全に別物を作らないといけなくなるよな

敵や味方との判定の関数も新たに作らないといけなくなるしな
0114名前は開発中のものです。2011/07/20(水) 02:10:31.57ID:phwAyEUP
>>113
当たり判定クラスor構造体を作っておいて、判定はひとつの関数でやるのおすすめ
0115名前は開発中のものです。2011/07/20(水) 02:48:40.84ID:vUGfpdFc
敵味方判定はビットマスクだろ。
当たり判定はビットマップでやれば同じ扱いで
数ピクセル分の並列判定も可能。
0116名前は開発中のものです。2011/07/20(水) 04:35:42.15ID:gL7wAfPg
>>115 何言ってるか全然わかんないけど興味あるので詳しく教えてくださいませんか?
0117名前は開発中のものです。2011/07/20(水) 06:07:09.62ID:VQBl28Yo
無名クラスがnewできないからjava C#みたいに関数ポインタの代わりが
できないんだよな
0118名前は開発中のものです。2011/07/20(水) 21:43:52.57ID:hYnYJ2X9
ラムダ式でええやん
0119名前は開発中のものです。2011/07/20(水) 21:50:57.98ID:DqIwh6Bu
関数ポインタでええやん
0120名前は開発中のものです。2011/07/20(水) 22:44:43.47ID:g6rdsdP4
>>116
ビットマスクは種類ごとに1ビットだけ立てたのを用意するよくある手法。
すべての攻撃が敵だけに当たる等で完全に分離できるならオブジェクトリストを増やしたほうがいい。
ビットマップは当たり判定用の2値画像を用意して読み込み時に
バウンディングボックスの設定と水平線のスキャンライン毎に横の最小最大値を記録。
バウンディングボックスでの大まかな判定の後に重なるラインだけで当たり判定。

でも高速で移動してる物体や弾だと間の補完も必要だし
出来るなら円や矩形だけに固定したほうが速いわな。
0121名前は開発中のものです。2011/07/20(水) 22:57:58.35ID:g6rdsdP4
>>117
ファンクタとしてなら関数内で名前適当でクラス宣言すりゃ十分だろ
0122名前は開発中のものです。2011/07/21(木) 10:29:50.43ID:9fulY9ee
>>117
そんなあなたにC++0xのラムダ式。
Visual C++ 2010 ならExpressでも使えます。

個人的にはboost::lambdaとC++0xラムダ式とfunction<>の組み合わせが
最高にカオスで素敵。
積極的に使いたいとは思わないけどな!
0123名前は開発中のものです。2011/07/21(木) 12:42:12.91ID:oxc8Rw/m
>>120
何を言っているかさっぱりだが、この発言が理解不能な俺でもそれっぽいSTGが作れるのを見ると
ゲーム作製ってプログラミング知識は要らないんだな〜と痛感するw

先人のアイディアを模倣(インスパイア)したパクリゲームだからだけどww
面白いゲームの第一人者になるは必要なのかもしれないな
0124名前は開発中のものです。2011/07/21(木) 12:56:34.57ID:e3FYH844
つか当たり判定でそんな面倒くさいことをする必要なんてあんのか?
プログラム書くためにゲーム作るんじゃないんだから
0125名前は開発中のものです。2011/07/21(木) 13:01:19.70ID:NyPhIIxu
ゲーム製作は料理と同じ

プログラミング用語=料理用語
コードの書き方にケチをつける=包丁の使い方にケチをつける
完成品が出来ない=材料だけ買って飽きる
ツクール=レトルト食品

料理用語なんて知らず包丁の使い方も素人でも美味しい料理は作れる
但し最低限の知識は必要。包丁の使い方に慣れていれば効率やレパートリーが増える

カレー(RPG)でいいならレトルト(ツクール)でもそれなりな物が作れる
下手に1から作るより美味しい
0126名前は開発中のものです。2011/07/21(木) 13:11:36.20ID:F3BN3/F7
>>123

俺はそれこそ円と矩形だけで全て判定させてるけど、まぁ120の言ってる事は大体解る。細かくは解らん。

120の内容を理解しようと思ったら、まず二進数と論理演算を知る必要がある。
そんなに難しい事じゃないから、覚えるのに20分もかからないと思う。
プログラム知識として、知ってて得はあっても損はないから興味あるなら調べてみては。
0127名前は開発中のものです。2011/07/21(木) 13:23:07.82ID:e3FYH844
俺も円と矩形(回転可能)だけ

正直円と回転矩形ですら登場頻度は凄く低いわけで、点と矩形だけで大抵は事足りると思う
0128名前は開発中のものです。2011/07/21(木) 13:26:00.60ID:aFVdxxKm
>>124
すこし、外れてるかもしれんが
その言い方だと「ゲームにクイックソートなどいらぬ、バブルソートで十分だ」
って感じに聞き取れるぞ。

早く、正確な処理にはそれなりに面倒な処理が必要なんだよ
速さだけを追求するなら、短冊で判定すればいい、
距離を正確にだして、判定したいというなら、円での判定もある
より正確に、回転した長方形等を判定し、ある程度の速さを
全ての物体との当たり判定をしなくてもよい方法

当たり判定の質、量に応じて処理は選んで使うものだよ
例えば、画面上ある全ての弾が互いに干渉する弾幕ゲームなんてものを考えると
弾の数を制限するか、より早いロジックを考えるかって話になる
弾幕ゲームで100個以下の弾とか、2^nオーダー処理でやるほうが馬鹿だろ
0129名前は開発中のものです。2011/07/21(木) 13:29:20.87ID:e3FYH844
>>128
ああ、言いたいのはそういう意味じゃない
「そんな面倒な処理をやって、そこまでの利点あるのか?」
って言いたかったんだ

俺は一般的な方法でやってるけど、数百対数百のオーダーの処理でも1msもかからないわけで
一応、多少の判定間引き処理は入れてるけどね
0130名前は開発中のものです。2011/07/21(木) 13:34:22.00ID:oxc8Rw/m
>>126
あまり興味ないかな

二進数やら論理演算はわかるが

むしろなぜそういう用語でしか語れなくなるのか不思議でしょうがない
>ビットマップは当たり判定用の2値画像を用意して読み込み時に
>バウンディングボックスの設定と水平線のスキャンライン毎に横の最小最大値を記録。
こういう所をもっと分かりやすく語る事ができないのかな〜っと
0131名前は開発中のものです。2011/07/21(木) 13:38:04.34ID:wkg9zBV6
仕様と実装、戦略と戦術。
0132名前は開発中のものです。2011/07/21(木) 13:39:56.67ID:fRr1kdC6
>>130
同感
何かオナニーを見せられてる感じがした
0133名前は開発中のものです。2011/07/21(木) 13:47:49.25ID:NyPhIIxu
業界人か業界かぶれの病気みたいなもんなんだよ

調理場でダスター使えよwwと言っちゃうようなもん
ダスターと言わず雑巾で良いだろw

クァンタ?関数オブジェクトでいいだろw
本人は通じて当たり前と思って使っちゃう表現

ゲーム業界は知らんがプログラマーから客先で打ち合わせするようなSEになると
専門用語癖は超NG

技術力が生半可かあるプログラマー程この癖が抜けにくい
というか「システム部の人間なんだから通じて当然」みたいに思うらしいw
0134名前は開発中のものです。2011/07/21(木) 13:55:04.58ID:u/vR7YNA
というか用語自体はそんなに難しくもないのに、全体が繋がるとサッパリ意味不明になるから余計にタチが悪いと思ったw
(バウンディングボックスは他分野でも使われるから曖昧でピンと来なかったが)
0135名前は開発中のものです。2011/07/21(木) 14:16:17.88ID:ruwe1b1D
二行以上のイミフ長文は勘弁して欲しい
もちろんコード例がずらずらっと綴られるのは一向に構わん
0136名前は開発中のものです。2011/07/21(木) 14:18:02.15ID:rj8APaBe
なんか、当たり判定と聞くと PCエンジン版の R-TYPE を思い出す
自機は中央1ドットしか当たり判定がなく、その代わり敵弾とかは、
やや大きめの(丸い弾がピッタリ収まる)矩形とみなして、判定していた
0137名前は開発中のものです。2011/07/21(木) 14:21:55.89ID:e3FYH844
式神の城なんかもその系統じゃなかったっけな<自機1ドット
弾幕系だと弾がドットってのが多いけど

じゃあ弾は全部ドットでいいじゃん、って思われそうなもんだけど、
それでも見た目の弾の大きさがダイレクトに難易度を左右するから面白い
0138名前は開発中のものです。2011/07/21(木) 16:24:48.14ID:aFVdxxKm
>>129
手間がかかる分、利点はあるよ
敵の撃った弾が、自機にしか当たらないような状況ならあまり意味がないけどね
全部が全部に当たるなら、nLog2nぐらいに抑えることはできる。
n^2で計算するより、より多くの当たり判定を16msで可能になるわけだ。

ただ、イニシャルコストというべきものは、コードの煩雑さだけでなく
準備するデータにも多くかかるので、処理の対象が少ないときに
逆転することも当然ある。

まぁ、使うとするなら、弾幕シューティングとかではなくて
リアルタイム物理演算とかになるわけだが
画面の外を含めて、設定したフィールドに千数百のオブジェクトがあって
互いに干渉するような場面を想定するなら非常に有効な手段になる。

逆に画面に数千の弾があっても主人公にしか当たらないというなら
導入する意味はまったくない。
0139名前は開発中のものです。2011/07/21(木) 16:41:43.05ID:cLBhZIBA
別に千以上のオブジェクトがあったところで、領域を適当に縦横各10分割くらいして大ざっぱに調べてから判定取ればいいだけなんじゃ
千対千程度の衝突判定なら1msもかからないよ
0140名前は開発中のものです。2011/07/21(木) 16:50:22.64ID:m1RQehj9
>>138は典型的な「理屈ばかりで実物を作れない」タイプに見える
0141名前は開発中のものです。2011/07/21(木) 16:52:42.66ID:Boe80Cih
空間分割実装して色々追加してたら劣化物理エンジンになった
今は素直に物理エンジンや物理エンジンの当たり判定だけ利用してる
0142名前は開発中のものです。2011/07/21(木) 16:58:46.11ID:H/W2gefG
ぶっちゃけ、複雑なものを複雑に解くのはそんなに難しくないんだよな
複雑なものをいかに簡単に解くかってのが開発、特に個人や同人で要求される能力だと思う
01431262011/07/21(木) 17:36:45.31ID:mndgCBlg
>>130

君の気持ちも解るけど用語なしで説明しようと思ったら、超長文になるから、無理。

でも二進数と論理演算わかるならビットマスクはわかるでしょ?

00000001 ← 敵の弾に当たるフラグ
00000010 ← 味方の弾に当たるフラグ
00000011 ← 両方の弾に当たるフラグ

「味方の弾に当たるかどうか調べたい」って時には次のようにマスクで論理演算する。

00000011 
&00000010  ← これがマスク
----------
00000010  ← 答えが0でなければフラグが立ってる。
0144名前は開発中のものです。2011/07/21(木) 17:39:25.89ID:aFVdxxKm
>>139
1,000対1,000だと1,000,000回の判定が必要だよ
俺の環境だと
if (a < g & c > e & b < h & d > f)
{
// 何もしない
}
っていう処理を1,000,000回に平均6.1msかかるのだが
n~2オーダーの処理を馬鹿にしすぎてないか?
a += 1;
って処理でも1,000,000回だと平均3.5ms必要だ。
平均値なのはCPUの状態で1ms以下のときもあるから
0145名前は開発中のものです。2011/07/21(木) 17:40:31.38ID:xZAHcfu0
そこはわかってるぽいし別に書かなくても
0146名前は開発中のものです。2011/07/21(木) 17:40:43.06ID:sP0EYTBd
単純なものを複雑に考えるのは一番良くないと思った木曜日の日暮れ前
0147名前は開発中のものです。2011/07/21(木) 17:43:55.08ID:Ybj0mBW5
>>144
だからまず大まかに調べてから、って書いてんじゃん
空間分解するだけで平均試行回数はせいぜい千オブジェクトで数千オーダーになるぞ
密度が滅茶苦茶高かったりオブジェクトがやたら大きかったりすれば話は別だか、その場合はどうやっても試行回数は増える

あんた説明も下手だけど理解力も無いんだな
0148名前は開発中のものです。2011/07/21(木) 17:49:31.76ID:xYRyCaO7
方法に固執する人間ってのは頭固いんだな

だから「理論に拘る人間ほど完成させられない」法則が成立する訳か
ちゃんと理屈があるんだな
0149名前は開発中のものです。2011/07/21(木) 17:50:15.28ID:UqAQESKq
難しく説明する人は自分の知識を自慢したいだけの人
0150名前は開発中のものです。2011/07/21(木) 18:07:09.79ID:8WUrJXCA
密度が高い場合はその部分だけ空間を再分割すれば解決。
0151名前は開発中のものです。2011/07/21(木) 18:32:23.54ID:nSN2W6IY
密度が高いと大質量超高速弾を撃ち込みたくなるんだよな。
0152名前は開発中のものです。2011/07/21(木) 18:35:40.59ID:kxcBXdBO
コリジョンについて

順番
@なにかに衝突した。
Aある特定のグループに衝突した。
Bある特定のオブジェクトに衝突した。
0153名前は開発中のものです。2011/07/21(木) 18:40:15.49ID:e3FYH844
>>151
ボンバァー!
0154名前は開発中のものです。2011/07/21(木) 19:17:22.49ID:8Yzd1HtY
>「理論に拘る人間ほど完成させられない」法則が成立
クソワラタ
なんかこのスレのレベル落ちたな。HSPスレ並
■ このスレッドは過去ログ倉庫に格納されています