[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 05/01 18:08 / Filesize : 133 KB / Number-of Response : 566
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:名前は開発中のものです。 mailto:sage [2011/07/17(日) 21:01:09.54 ID:J1CqPxml]
Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

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

【過去スレ】
DXライブラリ 総合スレッド
pc11.2ch.net/test/read.cgi/gamedev/1197468399/
DXライブラリ 総合スレッド 2008
pc11.2ch.net/test/read.cgi/gamedev/1224923873/
DXライブラリ 総合スレッド その3
pc11.2ch.net/test/read.cgi/gamedev/1238429676/
DXライブラリ 総合スレッド その4
pc11.2ch.net/test/read.cgi/gamedev/1249822550/
DXライブラリ 総合スレッド その5
pc11.2ch.net/test/read.cgi/gamedev/1259912953/
DXライブラリ 総合スレッド その6
hibari.2ch.net/test/read.cgi/gamedev/1267108154/
DXライブラリ 総合スレッド その7
hibari.2ch.net/test/read.cgi/gamedev/1286180687/
DXライブラリ 総合スレッド その8
hibari.2ch.net/test/read.cgi/gamedev/1301818631/

73 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 11:57:35.77 ID:8jeveRjH]
システムとツール用意するから誰かゲーム作ってよ!って症状は割と見かけるなw

74 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 12:38:05.54 ID:wD6kHH4M]
既製素材を使うなら、STGだったら半月で1面くらいは作れるね
けど、面白いSTGを作ろうと思ったら・・・お察しw
誤魔化しきかないだけに製作センスが非常に問われるジャンルだと思う

>>73
ゲーム部分作るからシステムとツールと素材作ってよ!って方が多いと思うw

75 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 12:42:54.32 ID:FU3SnXXK]
某STGを作った時の話だが、スプライト管理とかの基礎から作り始めて、タイトル、1面、ボスという基本的な流れまで作るのに1日、
そこから完成させるまで5年かかった
かなり中抜けはあるけどそれでも実質2年以上は確実にかかってる

最初の一行をゲーム作りだと思ってるプログラマが多いのが完成まで持っていけない原因じゃないかな
ゲームの内容にもよるけど、敵配置や調整はその数倍〜数百倍手間が掛かる
あと機能を実装しているときは周りからスゲースゲー言ってもらえるけど、
調整段階になると今度は不満ばかりを聞くことになるのでモチベーションが落ちがちになりやすい

76 名前:名前は開発中のものです。 [2011/07/19(火) 13:36:07.23 ID:GHPcOYFF]
デバッグ中にいきなり透明度30%くらいのひびの入ったブルースクリーンが出るんだが
これはいったい何なんだ

ある時間になると発生し、ある敵を倒すと直る

77 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 13:38:03.53 ID:JRPTQBTk]
せめてSS位だせよ

78 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 14:04:04.25 ID:asO+sKKz]
俺ならその「ある敵」とやらの描画コード周りを確認する。

79 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 14:43:22.10 ID:d+X1uW+C]
BSODってわけじゃないよね?
なんで画面が青みがかることをわざわざブルースクリーンなんて表現するの?

80 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 15:09:15.81 ID:8jeveRjH]
>>74
俺、内部用ツールとかだけずっと作ってたいw
顧客に出るような処理は正直やりたくない

81 名前: 忍法帖【Lv=1,xxxP】 mailto:sage [2011/07/19(火) 18:48:43.17 ID:KNy7X+y1]
ひびの入ったブルースクリーンってどんなのだ



82 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 20:30:24.26 ID:utrGvKTj]
STGの敵や弾ごとの挙動の管理がゴチャゴチャしてめんどくさすぎて、
C++のソースを書きだすGUIツールを開発してしまっている

83 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 20:35:39.86 ID:mEYpvFPj]
>>82
そして次にGUIツールを自動で操作するためのソフトを作るんですね
分かります

84 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 21:02:29.69 ID:kDyIkFAT]
>GUIツールを開発してしまっている
その画面をうp

ソースでもないし、開発ツールなんだから作りが質素でも恥ずかしく無いと思うの
本当に存在するならだけどwww


85 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 21:08:27.59 ID:SLNwahkb]
うpさせてどうするのさ。
当人には何のメリットもないと思うんだが。

86 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 21:09:00.38 ID:utrGvKTj]
>>84
なぜ疑われてるんだw
ただテキストを書きだすだけのツールじゃないかw
ちなみに開発したんじゃなくて開発中って意味だよ

87 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 21:15:34.98 ID:6h4jmI30]
>>83
それに近いことは一回やったことあるな
手順が決まってるGUI操作を特定座標の色の変化で分岐してマウス移動とクリックをするだけの単純なやつだけど
ある程度パターンが決まってるから、変えたいとこだけ事前に数値入れとけば開始ボタン1クリックで終わるからかなり楽になった


88 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 21:19:16.42 ID:OqV36zim]
>>87はわかりやすいなマクロ操作プログラムみたいなもんか

>>86はどういうツールか俺も見てみたい
テキストを書き出すというがどういう処理をさせるツールなのか

89 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 21:23:22.35 ID:mEYpvFPj]
>>86じゃないけど、スクリプトだと自由度低いから直接コードを吐かせるってだけなんじゃないかなと想像
考えてみたら俺もエクセルのVBAで似たようなことやってたわw

90 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 21:48:32.19 ID:OqV36zim]
>>89
イマイチわからん

敵の名前

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

ソースで吐き出すとなるとデータじゃない別のなにかって事だよな

91 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 22:00:43.95 ID: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 );
}

みたいなコードを吐いてくれるってことじゃない?



92 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 22:00:59.04 ID:YPhNnB7U]
俺もエクセルVBAで列挙体とか出力できるようにしてあるわ
RPGとか作ってるとこういうのはシャレにならないくらい面倒だからなw

93 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 22:01:45.86 ID:mEYpvFPj]
おっと、2行目は
BaseAngle = AimPlayer();
かな

実際にはもっと色々と引数が必要だろうけど

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

で、整理しやすいようにグループ分けとかできるようになってる

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

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

って処理しているもんだと思っていた

96 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 22:51:03.42 ID:xPJ+GTxa]
SetWindowSizeChangeEnableFlag に true を渡して画面サイズを途中で変更したり
SetWindowSizeExtendRate に 1 以外の値を渡して画面サイズを変更すると
アンチエイリアスが利かなくなってしまいます。
何とかきかせる方法はないでしょうか?
環境はwin7です。XPの時は大丈夫だったと思うのですが…

97 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 22:52:33.20 ID:OqV36zim]
汎用性ばかり高めるとソースコードは減るが処理は重くなる

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

計算後の物を弾幕1として登録
そして弾幕1で呼び出すという処理が必要になってくると理解してみた
だからソースとして吐き出すと

98 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 23:00:22.91 ID:mEYpvFPj]
>>95
>>97も言ってるんだけど、スクリプト処理って上手くやらないと結構処理が重くなる
STGはジャンルの特性上「低性能なPCでもいかにフレームレートをキープするか」ってのが重要になるから、
処理速度に関しては結構カツカツに組まなきゃならなかったりするw

そして汎用性を高めると柔軟性(特殊性)に乏しくなるってのもあるしね
スクリプトを併用するにしても、コード直書きできるようにはしたいところ

99 名前:名前は開発中のものです。 mailto:sage [2011/07/19(火) 23:40:45.06 ID:xPJ+GTxa]
ドライバ依存のようでした。流れ読まずにサーセン

100 名前:名前は開発中のものです。 [2011/07/20(水) 00:01:27.30 ID:zx/NMNX+]
でもシューティングでも弾によって色々な動きが欲しいし(火炎放射気、ミサイル、レーザーとか)
単純に一つの関数で済まそうとすることはなかなかできないんじゃないか?

俺は基本的な要素のデータベースみたいなのは作っておいて
あとは一つずつ関数を作っちゃうな

101 名前:名前は開発中のものです。 mailto:sage [2011/07/20(水) 00:12:51.56 ID:LJdX4cyX]
俺の場合、関数化するのは「よく使うパターン」くらいかなあ
nWAYとか反射弾とか

基本的には敵の動きから攻撃パターンまで全部コード直接書いてるw
行数で言ったら数万だけど、手間的には案外大したこと無かったりするし
書くよりも、あとで手直しするときに解読する方が大変w



102 名前:名前は開発中のものです。 mailto:sage [2011/07/20(水) 00:17:18.22 ID:w+LKMFg6]
>>100
火炎放射、ミサイル、レーザー、単発
まずはその種別毎に分岐
同時に何発撃つか、またその角度。弾即。

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

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

どこまで処理に汎用性を持たせるかだな
弾という時点で分岐をさせるのか
火炎放射から分岐させるのか
火炎放射の発射数から分岐させるのか
角度弾速まで固定化された末端で関数として扱うのか


103 名前:名前は開発中のものです。 mailto:sage [2011/07/20(水) 00:19:41.02 ID:Uv/sL0og]
割と真面目な話をすると、ここら辺はコーディングじゃなくてSTGの腕前の影響をまともに受けると思う
STGの腕があればどこを共通化してどこを差別化するかってのが容易に見当つくから

104 名前:名前は開発中のものです。 mailto:sage [2011/07/20(水) 00:31:13.59 ID:vUGfpdFc]
理想は種類で細分化された関数用意して最上位で関数ポインタで同一インターフェースに纏めるのかな
C++活かすなら関数ポインタ部分を継承やテンプレート関数になるんだろうけど。
外部入力でコード自動生成はテンプレート処理と同等。

105 名前:名前は開発中のものです。 mailto:sage [2011/07/20(水) 00:32:20.16 ID:UXx1Rwux]
素直にクラスで継承使おうぜ、というと前スレ後半みたいに荒れるのかなぁ

106 名前:名前は開発中のものです。 mailto:sage [2011/07/20(水) 00:35:33.60 ID:LJdX4cyX]
継承でいいんじゃなかろうか。まぁ継承使わなくてもちょっとコードが汚くなるだけで組めるは組めると思うけど
MoveとAttackをそれぞれ関数ポインタとして持たせて、クラス毎にオーバーライドしてる

107 名前:名前は開発中のものです。 mailto:sage [2011/07/20(水) 00:38:30.14 ID:w+LKMFg6]
>>105
そうはならないと思う

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

理想論で〜しようぜ!いや〜のが良い!は
机上の空論の議論だから好き勝手にどうぞってなる

108 名前:名前は開発中のものです。 mailto:sage [2011/07/20(水) 00:41:26.80 ID:LJdX4cyX]
>>107
荒れたのは、そんな小利口なやり方必要ねーだろ→いや必要だろ→ループ、って感じに見えたが
それにOOPは難しいよ派と誰でも分かる派とC++はC前提派が混ざって大混乱に陥った

109 名前:名前は開発中のものです。 mailto:sage [2011/07/20(水) 00:45:29.82 ID:phwAyEUP]
俺はこうやってるぜ自慢ならいいと思う
人それぞれなのに人の方法にケチつけるから荒れる

110 名前:名前は開発中のものです。 mailto:sage [2011/07/20(水) 00:55:44.26 ID:DqIwh6Bu]
机上の空論と言う事で・・・

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

C#ならActionだけでできちゃうからC#使いにお勧め

111 名前:名前は開発中のものです。 mailto:sage [2011/07/20(水) 01:02:06.42 ID:cozewM6U]
>>108
おお、わかりやすい



112 名前:名前は開発中のものです。 mailto:sage [2011/07/20(水) 01:06:04.99 ID:b6vAzTXb]
>>109が全てだな。
そもそも「ゲームが作りたくて(半ば仕方なく)プログラムをしてる」人に対して、
「プログラムの題材としてゲームを選んでる」人が作法()とか言ってたからなw

113 名前:名前は開発中のものです。 [2011/07/20(水) 02:07:15.20 ID:zx/NMNX+]
ショットに四角とか三角の判定を持ったショットも作りたいけど
こうなると、完全に別物を作らないといけなくなるよな

敵や味方との判定の関数も新たに作らないといけなくなるしな

114 名前:名前は開発中のものです。 mailto:sage [2011/07/20(水) 02:10:31.57 ID:phwAyEUP]
>>113
当たり判定クラスor構造体を作っておいて、判定はひとつの関数でやるのおすすめ

115 名前:名前は開発中のものです。 mailto:sage [2011/07/20(水) 02:48:40.84 ID:vUGfpdFc]
敵味方判定はビットマスクだろ。
当たり判定はビットマップでやれば同じ扱いで
数ピクセル分の並列判定も可能。

116 名前:名前は開発中のものです。 mailto:sage [2011/07/20(水) 04:35:42.15 ID:gL7wAfPg]
>>115 何言ってるか全然わかんないけど興味あるので詳しく教えてくださいませんか?

117 名前:名前は開発中のものです。 mailto:sage [2011/07/20(水) 06:07:09.62 ID:VQBl28Yo]
無名クラスがnewできないからjava C#みたいに関数ポインタの代わりが
できないんだよな

118 名前:名前は開発中のものです。 mailto:sage [2011/07/20(水) 21:43:52.57 ID:hYnYJ2X9]
ラムダ式でええやん

119 名前:名前は開発中のものです。 mailto:sage [2011/07/20(水) 21:50:57.98 ID:DqIwh6Bu]
関数ポインタでええやん

120 名前:名前は開発中のものです。 mailto:sage [2011/07/20(水) 22:44:43.47 ID:g6rdsdP4]
>>116
ビットマスクは種類ごとに1ビットだけ立てたのを用意するよくある手法。
すべての攻撃が敵だけに当たる等で完全に分離できるならオブジェクトリストを増やしたほうがいい。
ビットマップは当たり判定用の2値画像を用意して読み込み時に
バウンディングボックスの設定と水平線のスキャンライン毎に横の最小最大値を記録。
バウンディングボックスでの大まかな判定の後に重なるラインだけで当たり判定。

でも高速で移動してる物体や弾だと間の補完も必要だし
出来るなら円や矩形だけに固定したほうが速いわな。

121 名前:名前は開発中のものです。 mailto:sage [2011/07/20(水) 22:57:58.35 ID:g6rdsdP4]
>>117
ファンクタとしてなら関数内で名前適当でクラス宣言すりゃ十分だろ



122 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 10:29:50.43 ID:9fulY9ee]
>>117
そんなあなたにC++0xのラムダ式。
Visual C++ 2010 ならExpressでも使えます。

個人的にはboost::lambdaとC++0xラムダ式とfunction<>の組み合わせが
最高にカオスで素敵。
積極的に使いたいとは思わないけどな!

123 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 12:42:12.91 ID:oxc8Rw/m]
>>120
何を言っているかさっぱりだが、この発言が理解不能な俺でもそれっぽいSTGが作れるのを見ると
ゲーム作製ってプログラミング知識は要らないんだな〜と痛感するw

先人のアイディアを模倣(インスパイア)したパクリゲームだからだけどww
面白いゲームの第一人者になるは必要なのかもしれないな

124 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 12:56:34.57 ID:e3FYH844]
つか当たり判定でそんな面倒くさいことをする必要なんてあんのか?
プログラム書くためにゲーム作るんじゃないんだから

125 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 13:01:19.70 ID:NyPhIIxu]
ゲーム製作は料理と同じ

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

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

カレー(RPG)でいいならレトルト(ツクール)でもそれなりな物が作れる
下手に1から作るより美味しい

126 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 13:11:36.20 ID:F3BN3/F7]
>>123

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

120の内容を理解しようと思ったら、まず二進数と論理演算を知る必要がある。
そんなに難しい事じゃないから、覚えるのに20分もかからないと思う。
プログラム知識として、知ってて得はあっても損はないから興味あるなら調べてみては。

127 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 13:23:07.82 ID:e3FYH844]
俺も円と矩形(回転可能)だけ

正直円と回転矩形ですら登場頻度は凄く低いわけで、点と矩形だけで大抵は事足りると思う

128 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 13:26:00.60 ID:aFVdxxKm]
>>124
すこし、外れてるかもしれんが
その言い方だと「ゲームにクイックソートなどいらぬ、バブルソートで十分だ」
って感じに聞き取れるぞ。

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

当たり判定の質、量に応じて処理は選んで使うものだよ
例えば、画面上ある全ての弾が互いに干渉する弾幕ゲームなんてものを考えると
弾の数を制限するか、より早いロジックを考えるかって話になる
弾幕ゲームで100個以下の弾とか、2^nオーダー処理でやるほうが馬鹿だろ

129 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 13:29:20.87 ID:e3FYH844]
>>128
ああ、言いたいのはそういう意味じゃない
「そんな面倒な処理をやって、そこまでの利点あるのか?」
って言いたかったんだ

俺は一般的な方法でやってるけど、数百対数百のオーダーの処理でも1msもかからないわけで
一応、多少の判定間引き処理は入れてるけどね

130 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 13:34:22.00 ID:oxc8Rw/m]
>>126
あまり興味ないかな

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

むしろなぜそういう用語でしか語れなくなるのか不思議でしょうがない
>ビットマップは当たり判定用の2値画像を用意して読み込み時に
>バウンディングボックスの設定と水平線のスキャンライン毎に横の最小最大値を記録。
こういう所をもっと分かりやすく語る事ができないのかな〜っと

131 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 13:38:04.34 ID:wkg9zBV6]
仕様と実装、戦略と戦術。



132 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 13:39:56.67 ID:fRr1kdC6]
>>130
同感
何かオナニーを見せられてる感じがした

133 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 13:47:49.25 ID:NyPhIIxu]
業界人か業界かぶれの病気みたいなもんなんだよ

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

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

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

技術力が生半可かあるプログラマー程この癖が抜けにくい
というか「システム部の人間なんだから通じて当然」みたいに思うらしいw

134 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 13:55:04.58 ID:u/vR7YNA]
というか用語自体はそんなに難しくもないのに、全体が繋がるとサッパリ意味不明になるから余計にタチが悪いと思ったw
(バウンディングボックスは他分野でも使われるから曖昧でピンと来なかったが)

135 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 14:16:17.88 ID:ruwe1b1D]
二行以上のイミフ長文は勘弁して欲しい
もちろんコード例がずらずらっと綴られるのは一向に構わん

136 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 14:18:02.15 ID:rj8APaBe]
なんか、当たり判定と聞くと PCエンジン版の R-TYPE を思い出す
自機は中央1ドットしか当たり判定がなく、その代わり敵弾とかは、
やや大きめの(丸い弾がピッタリ収まる)矩形とみなして、判定していた

137 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 14:21:55.89 ID:e3FYH844]
式神の城なんかもその系統じゃなかったっけな<自機1ドット
弾幕系だと弾がドットってのが多いけど

じゃあ弾は全部ドットでいいじゃん、って思われそうなもんだけど、
それでも見た目の弾の大きさがダイレクトに難易度を左右するから面白い

138 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 16:24:48.14 ID:aFVdxxKm]
>>129
手間がかかる分、利点はあるよ
敵の撃った弾が、自機にしか当たらないような状況ならあまり意味がないけどね
全部が全部に当たるなら、nLog2nぐらいに抑えることはできる。
n^2で計算するより、より多くの当たり判定を16msで可能になるわけだ。

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

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

逆に画面に数千の弾があっても主人公にしか当たらないというなら
導入する意味はまったくない。

139 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 16:41:43.05 ID:cLBhZIBA]
別に千以上のオブジェクトがあったところで、領域を適当に縦横各10分割くらいして大ざっぱに調べてから判定取ればいいだけなんじゃ
千対千程度の衝突判定なら1msもかからないよ

140 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 16:50:22.64 ID:m1RQehj9]
>>138は典型的な「理屈ばかりで実物を作れない」タイプに見える

141 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 16:52:42.66 ID:Boe80Cih]
空間分割実装して色々追加してたら劣化物理エンジンになった
今は素直に物理エンジンや物理エンジンの当たり判定だけ利用してる



142 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 16:58:46.11 ID:H/W2gefG]
ぶっちゃけ、複雑なものを複雑に解くのはそんなに難しくないんだよな
複雑なものをいかに簡単に解くかってのが開発、特に個人や同人で要求される能力だと思う

143 名前:126 mailto:sage [2011/07/21(木) 17:36:45.31 ID:mndgCBlg]
>>130

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

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

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

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

00000011 
&00000010  ← これがマスク
----------
00000010  ← 答えが0でなければフラグが立ってる。


144 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 17:39:25.89 ID: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以下のときもあるから

145 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 17:40:31.38 ID:xZAHcfu0]
そこはわかってるぽいし別に書かなくても

146 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 17:40:43.06 ID:sP0EYTBd]
単純なものを複雑に考えるのは一番良くないと思った木曜日の日暮れ前

147 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 17:43:55.08 ID:Ybj0mBW5]
>>144
だからまず大まかに調べてから、って書いてんじゃん
空間分解するだけで平均試行回数はせいぜい千オブジェクトで数千オーダーになるぞ
密度が滅茶苦茶高かったりオブジェクトがやたら大きかったりすれば話は別だか、その場合はどうやっても試行回数は増える

あんた説明も下手だけど理解力も無いんだな

148 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 17:49:31.76 ID:xYRyCaO7]
方法に固執する人間ってのは頭固いんだな

だから「理論に拘る人間ほど完成させられない」法則が成立する訳か
ちゃんと理屈があるんだな

149 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 17:50:15.28 ID:UqAQESKq]
難しく説明する人は自分の知識を自慢したいだけの人

150 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 18:07:09.79 ID:8WUrJXCA]
密度が高い場合はその部分だけ空間を再分割すれば解決。

151 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 18:32:23.54 ID:nSN2W6IY]
密度が高いと大質量超高速弾を撃ち込みたくなるんだよな。



152 名前:名前は開発中のものです。 [2011/07/21(木) 18:35:40.59 ID:kxcBXdBO]
コリジョンについて

順番
@なにかに衝突した。
Aある特定のグループに衝突した。
Bある特定のオブジェクトに衝突した。


153 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 18:40:15.49 ID:e3FYH844]
>>151
ボンバァー!

154 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 19:17:22.49 ID:8Yzd1HtY]
>「理論に拘る人間ほど完成させられない」法則が成立
クソワラタ
なんかこのスレのレベル落ちたな。HSPスレ並

155 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 19:19:51.02 ID:2EbrzkyD]
偉いのは完成させられる人間であって、完成させられなきゃいくら御託を並べたところでなぁw

156 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 19:22:42.24 ID:8Yzd1HtY]
完成させられないのは可哀相だね。俺としては頑張れとしか言えないw

157 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 19:30:09.53 ID:y7A+HNhF]
一つ断言できるのは、単純なやり方で間に合うものをわざわざ複雑に考えていたら確実に完成は遠ざかるな。

158 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 19:39:43.21 ID:X6M3PdJZ]
結論
実現したいことによって、それぞれ最適な方法があるよ
最適な方法を知りたいなら、何を実現したいのかをはっきりさせないとダメだよ

159 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 19:41:05.99 ID:mndgCBlg]
完成するのが当たり前に人間は、
いちいち他人が完成させられる人間かどうかなんて
気にしないと思うんだけどなぁ。

160 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 19:43:04.16 ID:5eE0LTrd]
あと空気や文脈を読む力って大切だよね
それと分かりやすく説明する力も

161 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 19:48:35.68 ID:K+lPZuzN]
おそらく完成しないことをスタンダードにして己の出来なさを慰めようとしているのだろう



162 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 19:53:54.88 ID:UzoGk/DC]
>>161は一体誰と戦っているんだろう…

163 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 19:56:14.41 ID:8A0SXtQF]
ってかID:mndgCBlgとID:aFVdxxKmって同一人物でしょ。
すごく特徴的な文章の書き方してて、しかもそれが共通してる。
空気が読めないって点まで共通w

164 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 19:57:54.00 ID:/ncYfUV6]
同じレス内ですら句読点を付けたり付けなかったりしてる時点で、ちょっと何かがおかしい人だよね。

165 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 20:07:11.51 ID:oxc8Rw/m]
>>143
落ち着こうぜ
だからビットマスクの部分には触れてないでしょ?

>ビットマップは当たり判定用の2値画像を用意して読み込み時に
>バウンディングボックスの設定と水平線のスキャンライン毎に横の最小最大値を記録。

なんでこういう人達って相手の事を理解しようとしないんだろ

二進数と論理算が分かると伝え、ビットマスクの部分には触れてなく
意味不の部分をクローズアップしている引用しているのに

ビットマスクが〜っとドヤ説明

166 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 20:14:26.39 ID:6Jk9atro]
正直その2行で使われてるのってそんなに専門的な用語ってほどでもない気が・・・
たとえ知らなくても全部検索すればすぐ出てくる程度のことだと思うの

167 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 20:16:21.53 ID:8Yzd1HtY]
>>165
教えて欲しいなら、そう言えばいいのにw
最近は軽く煽りを入れるのが礼儀なんだな

168 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 20:21:11.16 ID:e3FYH844]
>>165をどう読んだら「教えて欲しい」ように見えるのか不思議でならない
というか「興味ない」とまで言い切ってるのに

さっきからピントのズレたレスが多いし、何か変なのが一人スレに粘着してる?

169 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 20:23:40.97 ID:CeceGJTP]
ビットマスクさんはお呼びでないのでお引き取り下さい。

170 名前:名前は開発中のものです。 [2011/07/21(木) 20:24:31.62 ID:kxcBXdBO]
むかしむかし、そう30年ほど前
MS-DOSのCPU-10MHzで動作していた。GPU無くてVRAMに直接書き込むだけ。
それでも2Dシューティングが正しく動作していた。


171 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 20:25:12.88 ID:NyPhIIxu]
知識ばかりで応用力や表現力が乏しいからでしょ
だからこそ>>148な法則が成り立つ

実際にゲームを完成させているゲーム製作解説サイトと
完成品が存在しない解説サイトの違いは
前者「ゲーム製作って超簡単だよ。では紐解いていきましょう」
後者「物理演算が〜。この部分はさらにあーしてこうした方が良い(無論口だけ)」

特に完成には程遠い序盤からコードの最適化発言しまくるのは製作中止フラグw



172 名前:名前は開発中のものです。 mailto:sage [2011/07/21(木) 20:28:29.17 ID:MlU331uJ]
SQLite便利だ
他にこれ便利ってライブラリあったら教えてつかーさい

173 名前:名前は開発中のものです。 [2011/07/21(木) 20:29:12.80 ID:kxcBXdBO]
DirectX9の流儀で、
2Dゲームは3Dポリゴンで作るべし。
処理速度は3Dポリゴンの方が速い。







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<133KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef