DXライブラリ 総合スレッド その13at GAMEDEV
DXライブラリ 総合スレッド その13 - 暇つぶし2ch103:名前は開発中のものです。
12/06/18 23:22:50.07 dl1gwuYM
基本的に、前回の位置は取っておくものだと思ってる。
前回の位置と現在の位置が分かれば線分が作れるし、速度も分かる。

104:名前は開発中のものです。
12/06/18 23:30:00.75 6uMWAvog
>>103
なるほど、そういう意図があるのなら、わかった

105:名前は開発中のものです。
12/06/18 23:35:54.44 swRvSspO
上から下へ1000、左から右へ1000ドット
1フレームで移動する速度をもった2つの当たり判定はどうするんだ?

106:名前は開発中のものです。
12/06/18 23:39:35.85 cTKqEOS9
意図わかってる?
複数回移動させるのは、すり抜け防止のために移動を分割するってことだよ?

107:名前は開発中のものです。
12/06/18 23:49:07.38 GtGNALcx
>>105
1ループで1フレームだから、1フレームで2回以上の処理は無理じゃね?ってことか
500と500に分割したら2フレームだからな

108:名前は開発中のものです。
12/06/18 23:56:09.54 eP18lNyV
>>107
おまえさんは何も理解していない

109:名前は開発中のものです。
12/06/19 00:00:03.20 hmSeNpzt
for(int i=0; i<1000; i++)
{
  up_down_obj.move(-1, 0);
  if(atari(up_down_obj, left_right_obj))
  {
    up_down_obj.move(1,0);
  }

  left_right_obj.move(0, 1);
  if(atari(up_down_obj, left_right_obj))
  {
    left_right_obj.move(0, -1);
  }
}

110:名前は開発中のものです。
12/06/19 00:53:57.47 /lx0OVLb
>>106
>>109
そんなことだろうと思って>>105を書いたわけだけど、
移動開始位置や速度をばらすと衝突判定すり抜けるぞ。

111:名前は開発中のものです。
12/06/19 00:59:41.36 Sfa3wHvS
なんで無駄に汎用性もたせようとしてんの?
作る段階で高速度になりそうなやつだけ必要な分分割するんだよ

112:名前は開発中のものです。
12/06/19 01:06:06.74 4fwspgLl
高速同士のケースは考えないってこと?

113:名前は開発中のものです。
12/06/19 01:11:59.39 Sfa3wHvS
そのすり抜けがどうしても嫌な奴はもっと高品質の当たり判定つかえよ

114:名前は開発中のものです。
12/06/19 02:39:10.20 /lx0OVLb
低品質どころか何のあたり判定にもならんだろ
汎用性とかそういう問題じゃなくて根本からまちがっとる

115:名前は開発中のものです。
12/06/19 02:47:10.35 /lx0OVLb
動いてる物×動いてない物しか通用してないんだよ
動いてる物×動いてる物では当たってないのに当たったりするw

116:名前は開発中のものです。
12/06/19 02:57:18.48 NzPcXTxD
すり抜けも味付けのひとつと思えばよい

117:名前は開発中のものです。
12/06/19 03:08:39.89 /TtvJcte
>>116
パックマンを思い出した。あれ、すり抜けあるよね?


118:名前は開発中のものです。
12/06/19 03:26:11.16 51YepWQ4
>>110
そのすり抜ける場合ってどんな条件?

119:名前は開発中のものです。
12/06/19 03:30:31.60 qaWDZjMP
>>110
そもそも気にする必要がない、と考えてる人も多いんじゃないかろうか。
物理シミュレーションを作ってるならともかく、少なくともゲームなら。

>>112
それも1つの手じゃないかな。出来ないから妥協するとかじゃなくてさ。

人間が「すり抜け」を感じるのって、
動く物体が大きな壁にぶつかったり、直線上を反対の向きで移動してる物体同士がぶつかった時だと思う。

だから逆に、それ以外の場合だと、
人間は単に「ぶつからなかった」と認識するだけで、「「すり抜けた」とは感じないんじゃないかなって。

120:名前は開発中のものです。
12/06/19 03:32:49.60 /lx0OVLb
>>118
速さが違う場合

121:名前は開発中のものです。
12/06/19 03:37:00.97 /lx0OVLb
すり抜けるだけじゃなくて全然当たってないものが当たっちゃうよ。
それもたまにじゃなくて、かなり頻繁に。気にしないで済まないよ。

122:名前は開発中のものです。
12/06/19 03:37:05.28 51YepWQ4
1フレーム内で、
オブジェクトAが(0, 0)から(1000, 0)に移動
オブジェクトBが(0, -200)から(0, 200)に移動
とかってこと?すり抜けるかこれ?

123:名前は開発中のものです。
12/06/19 03:37:45.98 51YepWQ4
値間違えた。
3行目は オブジェクトBが(500, -200)から(500, 200)に移動

124:名前は開発中のものです。
12/06/19 04:13:50.64 /lx0OVLb
すり抜けないためには

一番速い物をループ数として、それ以外の物が1ループで
自身の速度 / 最高速の速度で動く必要があるな。

一番速いのが1発の弾丸(速度100)で、他の物体(壁やキャラ・弾丸)が
10体だとすれば100*11回判定すれば正しく動作するが、これでいいのか?

125:名前は開発中のものです。
12/06/19 06:22:05.84 51YepWQ4
いいんじゃないの?
結局こんなもの苦肉の策で、ある程度動けば精密性なんてどうでもいいだろうからループ数は大幅に下げるだろうけど


126:名前は開発中のものです。
12/06/19 07:23:43.22 kdS7Xx+M
つまり…どういうことだってばよ?

127:名前は開発中のものです。
12/06/19 08:08:45.30 qaWDZjMP
>>121
うーん、頻繁にあるのか。
自分はそういう経験がないから、いまいち分かんないや。

128:名前は開発中のものです。
12/06/19 08:26:49.54 FlUT6lH6
シューティングゲーム(非FPS)製作技術総合
スレリンク(gamedev板)

俺ならまずは
「そんなに速く動くオブジェクトを登場させる意味はあるのか?」
を考えてしまう
すり抜けが発生するほど高速かつ小型のオブジェクトってプレイヤーにとって視認が難しいし
理不尽ゲーに片足踏み込んでると思う
今回の話とは多分無関係だけどさ

129:名前は開発中のものです。
12/06/19 08:46:44.26 qaWDZjMP
>>128
ゲームプログラミングの技術って、
「それっぽく見せる技術」も大いに含まれてるしなー。

130:名前は開発中のものです。
12/06/19 08:57:44.09 vooZpGxc
グラディウスのブツブツゾーンとかいくらでもあるだろ

131:名前は開発中のものです。
12/06/19 09:24:29.64 Z9DrnG+Z
東方ですらすり抜けガードはしてないしなぁ
東方の一番小さな弾で仮定して、自機の当たり判定を2ドット、弾の当たり判定を6ドットとしても、
すり抜けるには毎フレーム8ドットも移動してないといけない
60fpsだとこれは恐ろしいスピードだぞ

自分から突っ込めばすれ違う可能性もあるけど、たった一回のまぐれにかなりのリスクを伴うから考慮する必要ないし

132:名前は開発中のものです。
12/06/19 10:26:42.84 318Ccd3v
レーザー攻撃とかも厳密には極めて速い弾を出し続けてるだけかもしれないけど
それはもう別の当たり判定法則を使った方がいいに決まってるよな

133:名前は開発中のものです。
12/06/19 10:48:44.11 IkWSGPGv
>>91
見かけ上2Dでも3Dでもどっちでも同じだけど…
それ、動作の詳細的にはラスタデータをBitblt合成する方が良い、って言ってるように見える

134:名前は開発中のものです。
12/06/19 16:34:47.07 /lx0OVLb
>>109だと挙動がおかしい。
>>124だと正しく動くが処理が大きい。

なら>>124から判定をざっくり粗くすればいい。
それでも重ければ、最高速の弾丸と敵や弾丸の最大出現数の掛け算値を
抑えるようにゲーム側の仕様を調整する。
他のゲームがどうのこうのいってどうする。

int var = 8; /* 8ドットの粗さ */
int max_speed = 100; /* 最高速 */
int loop = max_speed / var; /* ループ数 */
int bullet_move = 自身の速度 / 最高速 * var; /* ループ当たりの弾丸移動量 */


135:名前は開発中のものです。
12/06/19 17:29:55.30 MaB8Hi/N
じゃあ1フレームで(0,0)から(0,5)に移動する物体aと
(-2,2)から(2,2)に移動する物体bの
衝突判定っどうやるの?

それぞれでループして判定するとすり抜けるし
あたり判定マップを使ってそれぞれに登録させる(10回?)と、
今度はすり抜けたはずなのに当たる

136:名前は開発中のものです。
12/06/19 17:34:37.19 N+j7q+90
ちゃんと交互に動かしてやればすり抜けないだろ

137:名前は開発中のものです。
12/06/19 17:48:32.51 CIuJdxVM
線分交差判定でだいたいすり抜けはカバーできるだろ

138:名前は開発中のものです。
12/06/19 18:03:52.28 dXi6hRXI
DXライブラリとかから入ってきて、さらに根本(モノの考え方)がわかってない人にありがちなことだけど
1フレームとかドットとかそう言った単位に拘るのはビューとメッセージだけでいいんだよ
ビューには表現方法に限界や制限があるけど内部数値の表現方法は無限大だから
>>135みたいなのは考え方のスケールが間違ってる

139:名前は開発中のものです。
12/06/19 18:15:52.18 AYf3KTLl
>>135
片方が終わってから片方動かすとか…ないな

140:名前は開発中のものです。
12/06/19 18:18:51.90 Z9DrnG+Z
そのすり抜けは意図的に起こそうと思って起こせるものなのか?
ってのを考えてみたほうが

141:名前は開発中のものです。
12/06/19 18:21:09.08 CIuJdxVM
これでいいだろ
URLリンク(marupeke296.com)

142:名前は開発中のものです。
12/06/19 19:31:22.46 MaB8Hi/N
>>139
そんなこと言われたってどうすりゃいいのさ

143:名前は開発中のものです。
12/06/19 19:33:13.63 t2L2qs2O
a動かす→b動かす→判定→a動かす…でいいじゃん
で両方必要なだけ動いたら抜ける

144:名前は開発中のものです。
12/06/19 19:59:29.68 FlUT6lH6
>>142
△ すり抜けは諦める
○ すり抜けないようそもそもの当たり判定自体を大きくする
○ すり抜けないようそんなに速いオブジェクトを置かない
◎ スレを移動する

145:名前は開発中のものです。
12/06/19 20:03:25.44 mpgU3P1Q
画像すり抜け総合スレッド

146:名前は開発中のものです。
12/06/19 20:41:44.95 K4HTe/1q
すり抜けの話だけにスリ違いってか。

147:名前は開発中のものです。
12/06/19 20:50:08.59 6xzAkiuI
>>135

これって、あたり判定は、その座標と完全に一致したかどうかで見てるのかな。
半径が書いてないからそうなのかなって勝手に思ったんだけど。
だとすると、衝突しないのが正解だよね?

aは1フレームあたりの移動力5
bは1フレームあたりの移動力4

aが1移動する間にbは4/5しか移動してないはず。
ということはaが(0.2)に到達したとき(=2ループ目)には、bはまだ(-0.4,2)にいるだろう。

私としても
>>144の○二つが好きだなぁw
実際そうやってSTGを作ったよ。

148:名前は開発中のものです。
12/06/19 20:52:30.86 mpgU3P1Q
>すり抜けないようそんなに速いオブジェクトを置かない
は無理だろ…まず自機弾が…

149:名前は開発中のものです。
12/06/19 21:10:15.01 IkWSGPGv
飛び石状態で移動する物が交差したか?って判定するだけの話なら、

前回位置を点A、今回位置を点Bとして、A→Bの直線上に何があるか、って見るだけじゃないの

こんなの、マウスやタブレット使ったアプリケーション書くときにも、
内容によっては似た処理書くでしょ
なんで延々話してるんだか

150:名前は開発中のものです。
12/06/19 21:17:58.12 Z9DrnG+Z
自機弾ってかなり判定デカいからすり抜けないだろ
普通見た目より大きくするぞ

151:名前は開発中のものです。
12/06/19 21:18:04.73 qaWDZjMP
>>149
当たり判定を複数用意する方法と、線分の交差判定をとる方法、どっちにもメリットとデメリットがあるのよ。
分かりやすいのは前者だと思う。

152:名前は開発中のものです。
12/06/19 21:23:51.28 FlUT6lH6
>>148
じゃぁ敵を大きくすりゃええやん

153:名前は開発中のものです。
12/06/19 21:27:56.81 IkWSGPGv
>>151
複数てのはどういう複数?

飛び石の、とかレイ飛ばして判定が必要だとか、そういった場面で
ゲーム類だと、個人的によく書く処理は後者の方かな俺。すっきりと。

逆に荒い固定のマス目が論理上の1単位で、最速がメインループ上
スキップ無しになるような作りなら、単純な座標完全一致にするけど

154:名前は開発中のものです。
12/06/19 21:29:57.21 IkWSGPGv
あと、特にデメリットは無いと思うが

155:名前は開発中のものです。
12/06/19 21:35:04.14 qaWDZjMP
>>153
例えば軌道が曲線を描く場合なんかだと、
その軌道と実際の当たり判定が異なり、それが問題になる場合もあるかもしれない。

あくまで、「かもしれない」だが。

156:名前は開発中のものです。
12/06/19 21:41:27.44 /lx0OVLb
デメリット=スプライン曲線がわからないアホには線分判定が作れない

157:名前は開発中のものです。
12/06/19 21:41:59.54 CIuJdxVM
極小で超高速で曲線を描きながら突っ込んでくる敵機敵弾が溢れているとかおそろしいげーむですね

158:名前は開発中のものです。
12/06/19 21:51:39.83 IkWSGPGv
>>155
曲線だって普通はn角で直線近似するでしょ

>>156
ちゃんと実地で勉強してください

159:名前は開発中のものです。
12/06/19 21:56:18.65 IkWSGPGv
てか、何がわからないのか
数学ってほど数学の話でもないし、アルゴリズムとしても単純なのに


160:名前は開発中のものです。
12/06/19 22:06:26.53 Qlow+V/Q
今回弾Aと前回弾Bの線分ABと
今回キャラCと前回キャラDの線分CDが交わるかどうかの判別で
中学校の数学でいいのではないのかい?


161:名前は開発中のものです。
12/06/19 22:08:51.01 dXi6hRXI
解ナシ(ドヤァ)

162:名前は開発中のものです。
12/06/19 22:52:23.72 6xzAkiuI
>>135はaとbの線分が交差したかどうかでみれば交差してるけど、同一の座標に存在することがあるかと言われればないよね。
やっぱり、弾やキャラのあたり判定の大きさとかも一緒に考えないと無理だと思う。
個人的にはSTGの1フレームにそんな精度を求める必要はないと思うけどw

163:名前は開発中のものです。
12/06/19 22:53:00.99 qaWDZjMP
>>158
>曲線だって普通はn角で直線近似するでしょ

そりゃそうなんだけど、そう細かくして行ったら、どんな判定方法でも大して変わらんって話ね。

実際ゲームで使うかどうかは怪しいし、仮に必要な場面に出会ったとして、
自分も同じように直線で近似させると思うんだけども。

164:名前は開発中のものです。
12/06/19 23:33:02.46 tW3VB4Im
ぶった切るけど3Dって2Dと違って難しいんだな
2Dの移動はxy入力→DrawGraphで出来るけど3Dはxyz入力(VGet)→MV1SetPositon→MV1DrawModelでいいのかな?

165:名前は開発中のものです。
12/06/20 04:55:36.82 D5f5saoN
当たり判定が難しいとかスプライン曲線が云々言ってる奴は今すぐゲーム作れ
ゲーム作ったことないだろお前ら 感覚ってもんが育ってねぇ

>>164
それでいい
でも自分が直感的にできるようにラッピングするべきだな

166:名前は開発中のものです。
12/06/20 13:36:16.07 Rsbpp+eP
>>162
座標の完全一致じゃなくて、線分に対して対象との距離がどのくらい以下なら触れている、って普通考えないか?

167:名前は開発中のものです。
12/06/20 15:44:12.82 PZbl4dCi
そうだけどそんなこと一言も書かれてないじゃん

168:名前は開発中のものです。
12/06/20 15:54:26.37 Rsbpp+eP
>>167
誰のどの話について、その文句が出てるのかはっきりしない
全部書いてくれないとわからない、って言いたいの?


169:名前は開発中のものです。
12/06/20 16:19:44.95 OjaPaVFo
>>166

もちろんその通りだよ。
ただ、それについては>>147で指摘したんだ。
でも別になにも応答がないし、その考え方に対して反対もなかったから、そういうこととして進めた。

170:名前は開発中のものです。
12/06/20 16:27:19.62 jLOgFFIr
3Dはいずれ作ってみたい
その前にモデル作る技術身につけないといかんが

171:名前は開発中のものです。
12/06/20 17:23:52.32 5nWDbd2Y
3Dモデル描画関数に行列とモデルハンドルを渡すのでは無く
モデル内に行列を状態として持たせる方式にしたのは
ポインタや参照の利用を避け、なおかつ
巨大な構造体の値渡しを少なくするためなのだろうか

172:名前は開発中のものです。
12/06/20 17:30:16.30 CrRSTpB4
DirectXの構造体そのまま使うと
DirectXのヘッダが必要になって
DirectXのインストール・設定が必要になるからだろ。

そっくりの構造体をDXLIB側で定義して詰め替えるのは
オーバーヘッドになるからしない。

173:名前は開発中のものです。
12/06/20 17:32:02.55 Rsbpp+eP
>>169
そうだったか

>>171
x形式の事言ってるのなら、あるいはそうでなくても、観点自体が全然違うと思う。
単に初期姿勢の定義。

174:名前は開発中のものです。
12/06/20 17:33:05.72 Rsbpp+eP
あ、D3DXMESHの話じゃなかったのか
スマソ

175:名前は開発中のものです。
12/06/20 19:37:13.40 5nWDbd2Y
>>172
なるほど、そういう観点もあるか
SDK無しで使えるってのもDxLib強みの一つだしね

176:名前は開発中のものです。
12/06/20 22:29:28.98 di2Pwmar
UNITYがでたんでDXライブラリみたいな時代遅れの遺物はいらんでしょ


177:名前は開発中のものです。
12/06/20 22:34:14.15 sVK+nLbX
ステマうざい

178:名前は開発中のものです。
12/06/20 22:41:46.23 0VT3xp0A
あんな権利主のチンコの振りようで今までの努力がパーになるかもしれないようなもん使うなんてリスク管理ダメすぎるだろ

179:名前は開発中のものです。
12/06/20 23:03:37.28 Rsbpp+eP
そこでDirectX、OpenGL直ですよ

180:名前は開発中のものです。
12/06/20 23:07:54.97 DW2idUmS
C#よりもC++の方が色々と楽だしな。っつーか、どこがシャープなんだろ??

181:名前は開発中のものです。
12/06/20 23:09:04.06 0VT3xp0A
目の付け所

182:名前は開発中のものです。
12/06/20 23:13:56.48 CrRSTpB4
モバゲ関連会社みるとunityはスマフォ方面で伸びてる気がする。
俺はsiv3Dに乗り換えるつもりだが、リファレンスなくてソースハックする悪感。

183:名前は開発中のものです。
12/06/20 23:16:41.34 tHW7blzd
C++++ → C# 

184:名前は開発中のものです。
12/06/20 23:21:46.58 ImciugBL
siv3D出たの?俺も期待してるけど何できるか分からんし
DXライブラリで2D、Sivで3Dって使い分ければいいのに

185:名前は開発中のものです。
12/06/21 00:57:58.89 NB/uR81n
Siv3Dの方が性能いいだろう。
インターフェースもC++で使いやすいはず。
だがDirectX11らしいからwin XPで動かん。

186:名前は開発中のものです。
12/06/21 01:00:46.05 HvQGDDgW
関係者うぜぇ
あんなデモで性能良いとかわかるわけねーよ

187:名前は開発中のものです。
12/06/21 04:42:08.34 NB/uR81n
DXライブラリがしょぼいのは明らかなわけで。

だがEasy3D, Selene とかの経験から
作者の根気が性能より大事なことにも注意しないといかん。

Siv3Dは大学の団体(サークル)で運営されそうだが、
所詮学生だからすぐに飽きて放置になる危険も大きい。

188:名前は開発中のものです。
12/06/21 05:26:56.12 6wn4ZvHr
どこが明らかなんだ?
ライブラリの性能の良さとはなんぞや?

俺はDXライブラリこそDirectX利用の描画ライブラリとして最高にシンプルで自由度があると思っているのだけど
もちろん非公開関数を含めた上でな

189:名前は開発中のものです。
12/06/21 07:36:18.82 NB/uR81n
描画は機能がなくて自由度は低いし、
フォントやグラフィック描画はハンドルを使う方で統一させなかったりして
シンプルさに欠けてると思うが。

どこが最高にシンプルで自由度があるんだ?
たまたま自分が使ってるから思い込んでるだけだろ。

190:名前は開発中のものです。
12/06/21 07:39:01.16 6wn4ZvHr
>>189
その言葉そのままお前に返せるぞw

191:名前は開発中のものです。
12/06/21 07:52:50.81 6wn4ZvHr
もしかしてID:NB/uR81nは何から何まで用意してもらえるのがいいライブラリだと思ってるんだろうか
描画ライブラリで大切なのは仕様を厳密に再現できることだと思うのだけど

それにしてもしょぼいとか性能が低いとか、プログラマにあるまじき曖昧な表現ばかりする奴だな

192:名前は開発中のものです。
12/06/21 07:53:26.16 BotwF0Gl
そもそもDXはそれ自体に頼らないようなつくりにしてるって作者が言ってんじゃん

193:名前は開発中のものです。
12/06/21 08:03:42.40 NB/uR81n
子供だなー。

こっちは理由を挙げたがそちらは何も挙げていない。
DirectXにある関数の名前を変えただけのようなライブラリは使いやすいとはいえない。
だから作者も、もう一段ラップするとこを勧めてる。

他ライブラリの作者はそこまでワンパッケージでやっている。

194:名前は開発中のものです。
12/06/21 08:25:03.81 9eDUHMpj
それはむしろ「自由度が高い」と言うべきなのではw

195:名前は開発中のものです。
12/06/21 08:56:36.03 /H6puBOG
何を言うのかと思えば「子供だなー」かよwww
笑かすなww

196:名前は開発中のものです。
12/06/21 09:00:07.93 vLw9BiMQ
必ずしも高性能・多機能なものがシェアをとるとは限らないのがこの世の常。

197:名前は開発中のものです。
12/06/21 09:04:28.48 6wn4ZvHr
seleneとかもうライブラリじゃなくてエンジンだからな
少なくとも独自フレームワークの仕様を強要してしまったらそれはもうライブラリとは言えないと思う

198:名前は開発中のものです。
12/06/21 09:57:35.56 NB/uR81n
>>194
いや、制限が強く自由度は低い。
フレームワークのようにシンプルに扱いやすいわけでもない。

199:名前は開発中のものです。
12/06/21 10:03:05.71 9eDUHMpj
いやだからそれなら自由度が低い部分挙げてよ

200:名前は開発中のものです。
12/06/21 10:05:20.35 4f+/zXgq
DXライブラリ並みにサンプル付きのリファレンスがあれば良いんだけどね
リファレンスがないと作者のオナニーにしかならん

201:名前は開発中のものです。
12/06/21 10:05:38.35 6wn4ZvHr
自由度って言葉の意味を勘違いしてないか?

202:名前は開発中のものです。
12/06/21 10:34:10.59 8qsN60P5
フレームワークって自由を下げてるものなんだけど

203:名前は開発中のものです。
12/06/21 11:33:32.65 HvQGDDgW
こんなのが関わってるSiv3Dなんて程度が知れるな

204:名前は開発中のものです。
12/06/21 12:09:11.82 jrt7r4p0
ユーザーが多い分、妬まれてるな

205:名前は開発中のものです。
12/06/21 12:17:30.56 5IEIjIFs
今風のエフェクトや特殊処理を簡単に扱える=自由度が高い
そういうのを自分で工夫してやらないといけない=自由度が低い

みたいに思ってるのかな・・・


206:名前は開発中のものです。
12/06/21 12:21:50.19 6wn4ZvHr
甘やかされた初心者なんだろうな…

207:名前は開発中のものです。
12/06/21 12:28:02.41 Vc98TddL
>>205
これ逆だよな

208:名前は開発中のものです。
12/06/21 12:34:31.28 suI+Yk2L
思ったことがすぐ出来るのが自由度だと思ってるんだろうな
普通は思い通りの事を実現できるのを自由度っていうもんだが

前者みたいなのはツクールでも弄ってればいいんじゃないかな

209:名前は開発中のものです。
12/06/21 12:46:22.05 Vc98TddL
ただ、例えばDirectXネイティブで書けるような自由は、逆にDXLibの範疇に限定したら当然無いんだけど、
その事言ってるんじゃね

てか無いって言うか、逆にそれならDXLibなんて特に不要だから、単に使わなきゃいいだけなんだけども


210:名前は開発中のものです。
12/06/21 15:41:04.76 XrqXFppV
DirectXでSPRITEを使えばDXライブラリとの難易度の差なんてほとんどないよ
初心者がコケるのはWin32の部分

211:名前は開発中のものです。
12/06/21 16:20:28.37 Vc98TddL
>>210
俺はどっちかって言うと3Dの部分も含んだ意識だった
あとDirectSoundとか。ついでにXAudioとか。
スプライトだけとか狭い限定的な部分見たら、そうかもしれないが


212:名前は開発中のものです。
12/06/21 16:30:53.64 Vc98TddL
逆にDxLibの薄さで言うと、別の狭い限定的な見方をしていけば、
例えばwin32との差が大して無い物もあるので、同じことかなと

213:名前は開発中のものです。
12/06/21 16:41:48.97 6wn4ZvHr
スプライトは今のPCじゃ恐ろしく速度出ませんよ

214:名前は開発中のものです。
12/06/21 17:11:12.71 NB/uR81n
初心者が妬んでいるのか。人格批判に終始しているな。

215:名前は開発中のものです。
12/06/21 17:26:42.81 9eDUHMpj
そんなことより俺の質問答えてよ

216:名前は開発中のものです。
12/06/21 17:34:19.88 3Xx//Tzr
>>199
俺が出来ないことをライブラリがやってくれない
俺の出来ることはほとんどない
(俺が)DXライブラリを使っても自由度が低い

217:名前は開発中のものです。
12/06/21 17:41:37.68 NB/uR81n
>>215
どうせ人格批判、質問、根拠のない小学生みたいな感想文、
草付き一行レスしかしないんだろ?
わざわざ煽りの相手をすることもない。

DXライブラリしか知らない狭い知識の自分を正当化するために
DXライブラリを完全無欠と信じたいなら、それもいんじゃないですか?

218:名前は開発中のものです。
12/06/21 17:45:48.25 9eDUHMpj
だってお前複数行で答えなきゃいけないような事何も言わないじゃんw

219:名前は開発中のものです。
12/06/21 17:49:40.81 NB/uR81n
ほらほら怒り出した。

220:名前は開発中のものです。
12/06/21 17:50:47.23 fz57PckV
ID:NB/uR81n
今まさに人格批判をしまくってるアホは放置でつよ

221:名前は開発中のものです。
12/06/21 18:07:39.47 6wn4ZvHr
無知と馬鹿は罪ですよ
勉強しなおして出なおしてこい!
というかここDXライブラリのスレなんだしDXライブラリ使わないなら出てけよと言いたいw

222:名前は開発中のものです。
12/06/21 18:10:06.63 Vc98TddL
なんかエラい事になってるな
コード書こうぜ

223:名前は開発中のものです。
12/06/21 18:37:59.59 HvQGDDgW
seleneでもこんな奴が沸いてたのを思い出した

224:名前は開発中のものです。
12/06/21 18:44:28.34 6mb27Hng
ドキュメントが整備されてない。
思い通りに行かないとき、正常動作なのか異常動作なのか分からない。

メッセージループが独自。これは自由度を大幅に制限している。
てか、この設計のせいでライブラリ全体が歪んでる。

リソースのハンドルがint型。型システムの恩恵をわざわざ捨ててる。

バグが多すぎる。さらにアップデートするともれなくバグ発生。
テストコードがないため、そういうことにも気づかずにリリースされる。

節操のないAPI追加。似たような機能と名前のAPIが大増殖。

ちょっとライブラリ批判を行うとライブラリ戦士が登場して
ライブラリ批判封じと人格批判を始める。
だからいつまでたっても問題が共有されないし改善案も練れない。

225:名前は開発中のものです。
12/06/21 19:06:00.92 9eDUHMpj
>正常動作なのか異常動作なのか分からない。
これは他のライブラリでも、
使い方が間違ってる(正常動作)のか例外状態(異常動作)なのかはわかりにくい。
というか、理解するまでわからないのが普通だろ。つーか戻り値見ろよ

メッセージループに関しては
そういう設計思想(初心者が理解し難いだろう複雑さは排除する)なんだからしょうがないだろう
それで歪んでるとは俺は思わないが

あとは概ね同意だな
特に型に関してはint1個を適当に構造体でラップすりゃいいのにとか確かに思うな。
直接アクセスさせる必要は全くないし

226:名前は開発中のものです。
12/06/21 19:46:35.03 HvQGDDgW
何を指して言ってるのか全然分からない御託に対して同意できる所があるなんて凄いな

227:名前は開発中のものです。
12/06/21 19:50:54.79 HvQGDDgW
ちなみに褒めてないぞ

228:名前は開発中のものです。
12/06/21 19:51:10.60 Vc98TddL
>>225
>特に型に関してはint1個を適当に構造体でラップすりゃいいのにとか確かに思うな。

どっちかって言うと、C/C++プログラマ的に真っ先に浮かぶのは普通 typedef だと思うが


229:名前は開発中のものです。
12/06/21 19:52:45.87 CowLIiiz
どういう処理をしてるか全く分からないけどとりあえず構造体にtypedef使ってるわ
なぁにこれ

230:名前は開発中のものです。
12/06/21 19:53:02.53 6wn4ZvHr
>>224
お前が挙げた他のライブラリにも多くて、DXライブラリが特にって要素もそれほどないな……
バグだって他のライブラリもかなり多いし、DXライブラリは休みなく更新し続けてることでカバーしてる
最新版に差し替えるだけで常に開発に影響せずに保守できるのがライブラリの強みだし

メッセージループだって、seleneとかメッセージループなんてもんじゃない規模で縛ってるし、
これによる弊害はネイティブなWinAPIとの併用が出来なくなることくらいだけど、
じゃあ、他のライブラリはWinAPIをそのまま組み合わせて使用するようなことができるのか?

でも一番の突っ込みどころは、「型システムの恩恵をわざわざ捨ててる。」の一行だなw
型システムってなんやねんw 恩恵を受けるように書いたらどうなるんだろうなw


231:名前は開発中のものです。
12/06/21 19:55:00.18 Vc98TddL
DXLibに用意されてるメッセージループを使わないで、
その他の機能だけ、出来合いのサブルーチンとして利用してもいいんじゃね


232:名前は開発中のものです。
12/06/21 19:58:37.18 Vc98TddL
>>229
えらく初歩的な話だけど、変数名に当たる部分を新たな型として明示する指定

別の構造体とかでラッピングしてしまえ、ってのは、JavaやC#だとそうするけど、
C/C++だとそうでなく、コンパイラ指示でおkが普通って話。その用途の場合は。

233:名前は開発中のものです。
12/06/21 20:04:17.05 /H6puBOG
>>229
C言語なら構造体にtypedefはデフォだな

234:名前は開発中のものです。
12/06/21 20:09:01.40 NB/uR81n
>>224
>リソースのハンドルがint型。型システムの恩恵をわざわざ捨ててる。
ポインタと構造体を極力使わないのが当初のポリシーだったんだと思うが
最近の追加API見る限り崩れているな。
あとハンドルがint型なのはリソース解放の管理を
初心者が学ばない悪い習慣の温床になっているはず。
ライブラリ終了時に確実に全てのリソースを解放してくれるのは良いと思うが。

235:名前は開発中のものです。
12/06/21 20:11:22.48 6wn4ZvHr
ハンドルがintなのとリソースの開放をしないのは全く関係ないだろ?
こういうおかしいことばかり言う奴が偉そうにしてるのがなぁ

236:名前は開発中のものです。
12/06/21 20:19:05.49 /H6puBOG
なぜDxLibは生のintをハンドルに使用しているのは
覚えなきゃならないものを極力少なくしてるんじゃないかね。
初心者には、一度に新しい単語を複数見せるとパニックになるかもわからんし(偏見です

237:名前は開発中のものです。
12/06/21 20:24:03.85 if7eQlmq
別にintで困ってないしどうでもいい

238:名前は開発中のものです。
12/06/21 20:30:04.33 Vc98TddL
つまりintで良い(いい)んと


239:名前は開発中のものです。
12/06/21 20:30:17.24 6mb27Hng
typedefは別名つけるだけ。
構造体は新しい型を作る。
静的型付け言語なんだから別名じゃなくて新しい型を作れって話だよ。

>>ID:6wn4ZvHr
型システムについてまとまってるページがあるわ。
URLリンク(ja.wikipedia.org)

240:名前は開発中のものです。
12/06/21 20:51:13.82 NB/uR81n
>>235
君は無知なんだからもう黙ってたほうがいいよ。
恥の上塗りにしかなっていない。
初心者向けライブラリでも、君の人格障害までサポートできないんだ。

241:名前は開発中のものです。
12/06/21 20:54:40.55 6wn4ZvHr
>>239
そういう意味じゃないんだよ

>>240
人格障害はお前のことだろw
DXライブラリ使うわけじゃないのになんでここに居るんだ?

242:名前は開発中のものです。
12/06/21 21:00:21.67 /H6puBOG
DXライブラリは初心者向け、ってことでな。
2chにスレが立ってから、君みたいなスレ住人相手に自己満足に耽る輩が何回も来ている。
大体1スレに1回は来てると思う。

相手してくれてるだけでも幸せだと思っておいた方がいいよ?

243:名前は開発中のものです。
12/06/21 21:02:59.12 if7eQlmq
むしろスレを加速してくれるのでありがたい

244:名前は開発中のものです。
12/06/21 21:04:09.94 6wn4ZvHr
そういや前は2Dアクション斜面くんが居たっけ
共通してるのは、未熟で、どこかおかしい考えしてるのに、妙に自分の正しさを主張するあたりか

245:名前は開発中のものです。
12/06/21 21:09:49.30 NB/uR81n
>>236
完全にポインタ(メモリの動的確保)なし、プリミティブ型(int char double)と配列、
関数だけでミニゲーム作らせる意図があるならそれはそれでいいかもしれないが、

一部構造体使ってたり関数ポインタの解説があったりすると
当初のポリシーがぶれているように見える。


246:名前は開発中のものです。
12/06/21 21:13:56.51 rKN9osr3
NGID登録した

247:名前は開発中のものです。
12/06/21 21:34:50.49 ha4jcXpS
>>245
構造体はネットワーク通信とか3Dグラフィックとか
それなりに複雑で応用的な部分にしか使われていないという認識だったが。

関数ポインタは、サンプルプログラムとして軽く触れているだけだな。

むしろ構造体とかにまったく触れないのもどうかと思うけどな。
初心者がステップアップしていけるってのも割りと重要でしょ。

何でこのスレはこんなに煽り耐性が低いと思う?
みんなステップアップしてよそに行くから、住人の入れ替わりが早いんだよ。
たぶん。

248:名前は開発中のものです。
12/06/21 21:36:56.43 suI+Yk2L
意味不明なことを喚いて相手にされないと
低レベルのレッテルを貼るのはキチガイのテンプレ行動だな

249:名前は開発中のものです。
12/06/21 22:14:34.59 Vc98TddL
構造体とか基礎の範疇だけど

250:名前は開発中のものです。
12/06/21 22:15:38.80 NB/uR81n
>>247
>初心者がステップアップしていけるってのも割りと重要でしょ。
例えば、 LoadGraphScreen と DrawGraph を順に覚えて
混乱しながら違いを理解するより、DrawGraphしかない方が
初心者は手っ取り早く基本を抑えることができる。

同様に初心者も構造体とポインタの単純な使い方を後まで
避け続けるわけがないんだから、それなら遠慮なく使われていたほうが、
C入門書にはない実用的な使い方の例を示すことにもなって理解を助ける。

251:名前は開発中のものです。
12/06/21 22:20:41.47 Vc98TddL
初心者なんて誰でも最初はそうで、
でも長い開発の経験の中では、全体の何割もない期間の話で、
そもそも向かない人はやめてくだけだから、
そんな丁重に扱わなくてもいいと思うが。好きな人は自分で勝手に歩くし

252:名前は開発中のものです。
12/06/21 22:26:25.13 HvQGDDgW
見え見えの自演だな

253:名前は開発中のものです。
12/06/21 22:27:47.18 uXee4OgN
正直DXライブラリ使ってるならポインタなんてセーブデータくらいしか…

254:名前は開発中のものです。
12/06/21 22:32:36.24 NB/uR81n
>>247
>何でこのスレはこんなに煽り耐性が低いと思う?
負け犬の馴れ合いを求めてるんだろう。
「自分馬鹿だから全然わかんねーしw」
「俺も馬鹿で初心者だから気にすんなw ずっと馬鹿でいようぜwww」
……みたいな空気で、嫉妬深く程度の低さを共有したがる
永遠の初心者はどこにでもいる。

で、嫉妬心で攻撃してみたものの、軽く返り討ちにあってしまった結果、
恨み亡霊となってねちねちと一行悪口を言ってるのが連中の才能の限界。

255:名前は開発中のものです。
12/06/21 22:37:45.24 WLRtXJzk
>>244
あれはDXライブラリスレとしてはスレ違いだったかもしれないが、それなりに有意義な部分もあった

256:名前は開発中のものです。
12/06/21 22:40:04.16 Vc98TddL
ところで、ここは ゲーム製作技術板の DXLib スレだと聞いて
来てみた俺がいます


257:名前は開発中のものです。
12/06/21 22:40:52.25 ajj/kpkL
ワナビか

つーかDXライブラリっての使えばtypedef知らなくてもゲーム作れるってマジかよ??

258:名前は開発中のものです。
12/06/21 22:44:06.78 WLRtXJzk
そもそもC++だとtypedefを使う機会があんまり…

259:名前は開発中のものです。
12/06/21 22:44:29.19 kFhUqkhX
ああ、これが自己投影というものか。

260:名前は開発中のものです。
12/06/21 22:53:27.83 Vc98TddL
>>258
いやあるけど


261:名前は開発中のものです。
12/06/21 22:58:23.01 Vc98TddL
むしろ C++ だと typedef なんてめちゃめちゃ有りがたいが。

boost::shared_ptr<HogeClass> hoge; だとか、
std::vector<boost::shared_ptr<HogeClass>> vecHoge だとか、まして
for(std::vector<boost::shared_ptr<HogeClass>>::iterator it = vecHoge.begin(); it != vecHoge.end(); ++it)
{ /* 略 */ }

なんて、毎度毎度書いたりしないでしょ。 他細かい部分で、unsigned char を byte にしたいだとか、
他自前のテンプレートクラスについて、バリエーション予め用意しておくだとか。

使う機会めちゃめちゃあるじゃないって思ったが、もしかして Better C な内容しか書かないといらないのか


262:名前は開発中のものです。
12/06/21 23:04:21.51 HvQGDDgW
11だとautoが入ったな

263:名前は開発中のものです。
12/06/21 23:08:09.09 Vc98TddL
>>262
C++11はちゃんと調べて無いんだが、あれって型推論的なものと聞いたが
C++でダックタイプってのもどうなのよってのはあるが

264:名前は開発中のものです。
12/06/21 23:09:04.98 NB/uR81n
std::vactor<T>とかテンプレートクラスに
typedef使うのは常套テクニックだな。

代わりに継承を使う場合もあるかもしれんが。

265:名前は開発中のものです。
12/06/21 23:15:27.20 HvQGDDgW
俺も詳しく見てないけど
使う感覚にしちゃテンプレートとかポインタと指して変わらんと思う
便利なら使うってのでいいんじゃね
さっきの例で使うならiteratoのところ宣言する面倒無くなるし

266:名前は開発中のものです。
12/06/21 23:25:16.97 Vc98TddL
>>265
あぁそうか… コンパイラがポインタの先のテーブル見に行って推論みたいな、そんな感じなのかな
その意味で言うと、イテレータに限らないが、なんでも省略可能になっちゃったりするんだろうか
Perlみたいな… って想像したくないんだが。

>>264
テクニックって言うか、単純に見づらくなるからってのと、
あとコンパイル時解決と実行時解決の使い分け次第じゃね

他だと、関数ポインタを引数に取るコールバックだとか、それに類する所で boost::function とか
まして boost::function なんて、マルチスレッドコード書くときお世話になりまくる。
関数のシグネチャを毎回書くのは保守性の観点からもアレだから、やっぱりこの辺も typedefするのが普通。
無かったら C++ 辛いになってしまう。

267:名前は開発中のものです。
12/06/21 23:41:52.16 Vc98TddL
あとあれだ、DirectX絡みでいうと、DXLibの範疇だと用がないかもしれないが、
頂点バッファにカスタムFVFで頂点定義する時、定数渡して定義固定化したバッファのクラスや構造体作るときに、
テンプレート化してさらにtypedefして使ったりする。俺の場合だけど

268:名前は開発中のものです。
12/06/21 23:52:31.07 PJsHcyOi
>>224
>リソースのハンドルがint型。型システムの恩恵をわざわざ捨ててる。
ハンドルより、定数が全部int型で定義されてる方が気になるなあ。
例えば、SetDrawBlendMode() の第一引数とか列挙型で定義しといて欲しい。


269:名前は開発中のものです。
12/06/21 23:56:46.30 MRBLh9lt
ハンドルとか別にintでもなんでもいいんだけどさぁ、
せめてモードとかタイプとかの指定にはenumを使って欲しい
非公開の関数だとヘッダ見ても何を指定すればいいのかわからない時があるんだよなぁ…

270:名前は開発中のものです。
12/06/22 00:08:54.64 iI1PSMpU
>>261
……あ、毎度書いてた

271:名前は開発中のものです。
12/06/22 00:40:34.47 vVJJHNCt
ハンドルがtypedefだと間違った変数渡しても勝手に変換されるから意味ないでしょ
structにしとくとコンパイル時にエラー出るから便利だよ

272:名前は開発中のものです。
12/06/22 01:04:31.28 qZxxS3ym
関数に変数を指定してPlaySoundMemで使いたいんですが、これをどうすればいいでしょうか?
具体的には、se_play関数の引数に変数名を入れて他から指定番号のSEを呼び出せるようにしたいのです
void se_play(char se_number){
PlaySoundMem(se_number,DX_PLAYTYPE_BACK);
}

273:名前は開発中のものです。
12/06/22 04:14:09.11 /rEqvofv
vc++2008でDXライブラリ使ってたらインターネットブラウザがすごく重くなったんですが
これがメモリリークというやつですか?
LoadGraph関数のリファレンス読んだんですがサンプルではfree()関数で開放はしていません。
自動的に開放されるというわけではないんですか?


274:名前は開発中のものです。
12/06/22 04:16:48.36 vVJJHNCt
自動的に開放はされない
DxLib_End呼んで終了するかDeleteGraph使わないと開放されない

275:名前は開発中のものです。
12/06/22 07:02:09.99 uPLkt+w2
まだやってたのか
自分を客観的に見れない馬鹿はどうしようもないな

276:名前は開発中のものです。
12/06/22 13:03:14.63 l51oT9C4
DrawGraphとかPlaySoundMemってポインタ使えないの?

277:名前は開発中のものです。
12/06/22 13:06:54.58 uPLkt+w2
どういうことだろう
ポインタから実体の値を呼び出すには*hogeとすればいいけど

278:名前は開発中のものです。
12/06/22 14:33:18.57 l51oT9C4
使えるのかありがと

279:名前は開発中のものです。
12/06/22 14:33:31.71 EOlR9Clb
ハンドルのポインタだな。

int sound1, sound2;
int *pHandle = &sound1;

se_play(*pHandle);

でも >>272 の引数はcharなんだよね。
たぶんツリーでハンドルのこといいたいんだろう。
std::map< std::string , int > tree;
void se_play(char* name){
std::string key = name;
int handle = tree[key];
}

280:272
12/06/22 15:09:59.09 l51oT9C4
>>279
そんなやり方があるんですか、どうも!
DXライブラリを更に省略したくて作ってたんです

281:名前は開発中のものです。
12/06/22 15:10:55.86 l51oT9C4
初めてip被った…

282:名前は開発中のものです。
12/06/22 15:37:10.00 rmxXQg9H
DxLibModelViewerでメタセコのモデル読み込んだらテクスチャが真っ白になっちゃうんだけど解決法ない?
前に一回だけちゃんと表示されたけど条件が分からん…これじゃMV1が使えない
一応ファイルの場所はあってるんだけど

283:名前は開発中のものです。
12/06/22 16:08:23.44 9VY+vhBh
>>282
パスに空白や日本語とか
よくあるそれ系の話とか


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch