DXライブラリ 総合スレッド その13at GAMEDEV
DXライブラリ 総合スレッド その13 - 暇つぶし2ch1:名前は開発中のものです。
12/06/11 07:54:54.05 1UQaJ7F4
Cを習得した程度のスキルでも、ゲームのグラフィックを比較的容易に描画する事のできる、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

【公式】
URLリンク(homepage2.nifty.com)

【前スレ】
DXライブラリ 総合スレッド その12
スレリンク(gamedev板)

【過去スレ】
01 スレリンク(gamedev板)
02 スレリンク(gamedev板)
03 スレリンク(gamedev板)
04 スレリンク(gamedev板)
05 スレリンク(gamedev板)
06 スレリンク(gamedev板)
07 スレリンク(gamedev板)
08 スレリンク(gamedev板)
09 スレリンク(gamedev板)
10 スレリンク(gamedev板)
11 スレリンク(gamedev板)

【関連スレ】
C/C++ゲーム製作総合スレッド Part1
スレリンク(gamedev板)

2:名前は開発中のものです。
12/06/11 08:20:10.10 KvXVvbGJ
スレ立て乙

3:名前は開発中のものです。
12/06/11 11:20:47.62 67uf8PuE
おつ

4:名前は開発中のものです。
12/06/11 12:30:48.05 yyeWrB0V
>>1
キー処理部分だけどこんな感じか?

int Key,BackKey;
Key = GetJoypadInputState(DX_INPUT_PAD1);
if(Key != BackKey){
一回だけの処理
}

5:名前は開発中のものです。
12/06/11 14:06:36.02 JqpTmrqe
>>1
乙 俺の貼ったテンプレを使ってくれてありがとう。

>>4
ソース眺めること数分……
BackKeyってBackSpaceキーじゃなくて前フレームの入力情報かよ!分かりづらいわw

前スレ994(入力データを保存/判定する便利クラスを作った人)がどういう処理をしてるかまでは分からんので、
あくまで、同じようなクラスを作った自分の場合ね。


【1】データ形式
各キー(上キーとか1ボタンとか)ごとに、ON/OFF及びその状態が何フレーム続いてるかを保持する構造体を用意。
この時、DXライブラリで用意されている PAD_INPUT_XXX とは別物として考えること。


【2】メインループ
メインループの頭で、GetJoypadInputState() のラッパ関数を呼び出す。
そのラッパ関数の中でゲームパッドの入力状態を調べ、【1】の構造体の中に、ON/OFFとフレーム数を代入。

この時、ゲームパッドの各ボタンと【1】の構造体との紐付けを変更することで、キーコンフィグにも対応できる。
また、ゲームパッドからの入力を捨て、別途保持していたデータを流し込むことでリプレイ機能っぽくもなる。


【3】実際に使用する
ゲーム中で使うときは、【1】の構造体がどうなっているかを見る。
ここも関数化すると良い。押した/離した瞬間や押しっぱなし検出、キーリピートなどもここで。

物理的な入力情報と切り離しているので、キーコンフィグ/リプレイ/ゲームパッド番号などに影響されない。
ただしメニュー画面など、物理ボタンの情報を見たほうが良いかもしれない。


6:5
12/06/11 14:43:12.84 JqpTmrqe
言い忘れ。

DXライブラリ標準のパッド入力関数も、実際に物理キーを見てるわけじゃないと聞いた気がする。
だからそういう意味では二度手間だと思う。

7:名前は開発中のものです。
12/06/12 16:48:30.99 PrmTCR1b
新しいスレになったしゲーム作るかー

8:名前は開発中のものです。
12/06/13 03:08:42.75 Fth5LIbP
DXライブラリを内部使って2D向けのC++ライブラリを作ってます。
まだまだの完成度ですが、更新していくのでよろしく。
URLリンク(mint.ninja-web.net)

9:名前は開発中のものです。
12/06/13 03:53:46.49 6YCvOf39
記録開始フレームと
前保管値と現在値のxorがゼロじゃなくなったフレームを保管し続ければいいんじゃないの?

10:名前は開発中のものです。
12/06/13 05:19:22.79 03lFm6Hz
>8
乙、参考にさせてもらうぜ
>9
それは何に対して?

11:名前は開発中のものです。
12/06/13 07:31:15.13 fNf2Ns+s
>>8
おおおお、良いね
2Dで更に使いやすくなるのか

12:名前は開発中のものです。
12/06/14 01:37:32.95 dyBcGiZ1
DXライブラリをラップしてんのか

13:名前は開発中のものです。
12/06/14 03:59:27.19 XwvtSHuG
DXライブラリの中の人も、実際にはラップして使っとけ~みたいなことを言ってた気がする

14:名前は開発中のものです。
12/06/14 04:00:59.65 nQ8ithaG
実際に使うときは普通ゲーム状態を反映する関数でラップする・・

15:名前は開発中のものです。
12/06/14 04:21:31.31 0/0e47gT
チュートリアルを追加したよ

16:名前は開発中のものです。
12/06/14 04:25:31.25 0/0e47gT
パックマン作ろうと思ったが結構大変だな
やはりシューティングが一番サンプルに向いてる

17:名前は開発中のものです。
12/06/14 07:08:10.81 De7t29lb
アクションはリアルタイムだからな…
初心者には当たり判定やマップの描画が辛過ぎる
だからRPGをオススメします

18:名前は開発中のものです。
12/06/14 08:57:56.91 XwvtSHuG
無い無い無い無いwww

19:名前は開発中のものです。
12/06/14 09:42:30.70 dyBcGiZ1
RPGは、リアルタイムな要素を型に当てはめなきゃいけないから辛いw
PC98時代みたいなパタパタ移動ならまだしも

20:名前は開発中のものです。
12/06/14 18:57:41.38 vrsO9W0N
多人数で作るならRPGがオススメだがな
何せ作るのに必要なデータが山ほどあるからな
パタパタ移動の何が悪い!!

21:名前は開発中のものです。
12/06/14 19:55:15.44 oQCpmuRu
なぜ皆は平安京エイリアンを忘れてしまったのか
サンプルの簡単ゲームでも皆無

22:名前は開発中のものです。
12/06/14 20:20:25.91 6vlyBZI+
クソゲーだからだろ

23:名前は開発中のものです。
12/06/14 20:36:29.97 0/0e47gT
初級者向けならSFCのドラクエとかDSの世界樹ぐらいで十分だろう。

24:名前は開発中のものです。
12/06/14 21:13:03.40 2auZ8N26
このスレって実はこんなにレベル高かったのか
油断してた

RPGは状態遷移が多すぎて頭こんがらがる
ドラクエ式だってマップの時とメニュー開いてるときと戦闘シーンがあって
戦闘シーンにはさらにコマンド入力シーンとコマンド実行シーンがあって
シーン間でいろいろ情報のやり取りがあってetcetc

最初に作ったのがRPGって人は誇って良いと思うよ

25:名前は開発中のものです。
12/06/14 21:28:11.96 44Bo/u1A
SFCのドラクエとかプログラムの前にグラフィックと音楽が無理すぎだろ
SFCのドット絵とか芸術レベルやぞ

26:名前は開発中のものです。
12/06/14 21:33:04.35 EJf+xV+a
>>22
夢見てないで、出来るところからやれって話じゃないの?
物を作る側の人間の話として

27:名前は開発中のものです。
12/06/14 22:03:08.82 0/0e47gT
>>25
素材もってくるとしたら、やっぱりツクール向けの素材屋からでしょう。
それを考えると意外とレガシーRPGが一番初心者向けかもしれん。

28:名前は開発中のものです。
12/06/14 22:07:23.18 tos+h+5f
>戦闘シーンにはさらにコマンド入力シーンとコマンド実行シーンがあって
いくらなんでもそれくらいは簡単でしょーよ
初心者でも出来る

29:名前は開発中のものです。
12/06/14 22:08:18.83 EJf+xV+a
>>27
初心者が画面処理や内部管理や、その他ロジックについて勉強しながら応用して、そして実際のコードに落としていく事考える前提で言うと、
余計な物多すぎる気がするんだけど、その辺はどう考えてるの?実際の内容と経験的な話として

30:名前は開発中のものです。
12/06/14 22:15:50.48 uMcMenDk
>>24
発想を変えてみたら?状態遷移を使うからややこしくなると。
スレッドを使ってみるとか、スクリプト言語を試してみるとか、
やりようはいくらでもある。一つのやり方に固執するからこそ、
余計にややこしくなる。

31:名前は開発中のものです。
12/06/14 22:16:09.18 XwvtSHuG
フィールドのみ、もしくは戦闘のみくらいが無難な気がする

32:名前は開発中のものです。
12/06/14 22:45:30.12 j19G3Tdj
じゃローグで

33:名前は開発中のものです。
12/06/14 22:48:46.95 44Bo/u1A
RPGとかプログラムよりもシナリオグラフィック音楽成長システムバトルシステムとか色々プログラム以外に考えないといけないことが多すぎ
パズルとかがいいじゃね背景がスクロールしないで1画面完結型のミニゲーム的なのがいいと思うよ

34:名前は開発中のものです。
12/06/14 23:05:38.70 XwvtSHuG
>>33
実際、テトリスや倉庫番は定番の1つだしねー。


35:名前は開発中のものです。
12/06/14 23:45:06.03 EJf+xV+a
>>33
そしてその、多すぎるゲーム内容をまた、実際にプログラムに落とさないと形にならない訳だしな

とりあえず、画面固定のロードランナーとかからで
それか、バーガーバーガーとか

36:名前は開発中のものです。
12/06/15 00:35:46.59 sr87pd7W
RPGはリッチなものという固定観念がありがちだよな
mapは1次元、先に行くほどランダムエンカウンターが強くて一番奥はラスボス
1匹倒したらHPと攻撃力が1,1倍up
一番最初まで歩いて戻ると町で回復
とかのプアRPGでも、一応RPGだ

37:名前は開発中のものです。
12/06/15 00:36:34.01 P/i8VzQT
>>29
何を指しているのかわからないけど、
イベントとか成長システム、魔法、アイテムがほぼなくても成立するでしょ。

スクロールのない小さな一画面フィールドでモンスターに出会って、
殴って倒して、町に帰って回復できればそれで一段落。

シナリオがどうこうとかゲームとして完成度が高いってのを
求めているなら、それはもう初心者ではないはず。

38:名前は開発中のものです。
12/06/15 00:41:01.05 m0y/mI0M
そこまで削るならもうマップも必要ないしテキストだけでRPG作れちゃうな
作る目的がDXライブラリやプログラムの学習だとしたら、
やっぱり形にするための最低限の形でも必要な要素が全部詰め込まれてるSTGに落ち着いてしまう

39:名前は開発中のものです。
12/06/15 01:02:26.98 U3Zsrav+
そうそう。つまりそこまで削る前提で言うと、RPGである必要が無いってこと

40:名前は開発中のものです。
12/06/15 01:13:47.15 P/i8VzQT
やっぱりRPG講座が必要だよな
URLリンク(gumina.sakura.ne.jp)

41:名前は開発中のものです。
12/06/15 01:23:30.09 ZPvZUIfm
ゴミ箱にゴミを投げ入れるクソゲーでも作ってろ

42:名前は開発中のものです。
12/06/15 01:35:45.44 m0y/mI0M
>>40
まだC++に手を出してない頃、そのサイトみながらツールでSLGの移動アルゴリズム組んだわ
懐かしい

43:名前は開発中のものです。
12/06/15 15:48:16.89 RP+gVHPN
作るの難しいからこの要素は削ろう
これじゃいつまで経っても成長せんでしょ

44:名前は開発中のものです。
12/06/15 16:08:53.85 +umjQS6y
それはもちろんあるね
ただ、優先するのは、何か作品を完成させること、だと思う

最初の作品が完成すらせずに挫折するよりは、
要素を削りまくって一つ完成させるほうがいいよ

もちろん度合いの問題はあるけど。
「hello worldできました!ゲーム完成!」
とかないし

45:名前は開発中のものです。
12/06/15 16:48:58.49 P/i8VzQT
トップダウン設計しかないの?
システムの骨組みに成功すれば、そこから増築・改修は可能。


46:名前は開発中のものです。
12/06/15 18:31:56.36 DRnvgGC2
>>45
今回のような場合は。要素を削りまくった上で
設計はトップダウン、実際の開発はボトムアップ……くらいかなあと思っている。

47:名前は開発中のものです。
12/06/15 18:49:42.48 4tMxbY42
俺は最初に一つのアイデアから最もシンプルなゲームを作って、
それにマッチするような要素をどんどん追加してくよ
作ってて楽しいよ

48:名前は開発中のものです。
12/06/15 21:22:54.66 1pZBGI3O
基礎部分をシンプルに組んだ後、がむしゃらに機能追加していくのって楽しくて良いよな
あんま考えナシだと詰んでしまう場合もあるけど
構造化の段階で効率の良いもの作ろう作ろうと考えすぎて手が止まってしまう方が俺としてはツライ

49:名前は開発中のものです。
12/06/15 22:14:13.55 GgmBUPBQ
>>40
よし、言いだしっぺの法則でお前がRPG講座始めろ

50:名前は開発中のものです。
12/06/15 22:59:17.51 1pZBGI3O
講座が欲しいっていうのは結局のところ、そのジャンルの慣例とか定石が知りたいって意味なのか?

もし、実現方法がわからないって意味で言ってるならそこはもうちょっと頑張ってほしいが

51:名前は開発中のものです。
12/06/15 23:00:17.16 ssHt5U3G
ツクールを触ってみるべきだな
どうやって組めばいいかがわかってくる

52:名前は開発中のものです。
12/06/15 23:33:58.96 ZkGG9GAW
脳内でフローチャートが出来上がるねツクールは
あれさえ分かれば同じ命令の関数を作ることも出来るし

53:名前は開発中のものです。
12/06/16 00:21:57.86 ggxDDX5r
技術があるならトップダウンでいいけど
技術があいまいの場合、
トップダウンですすめていって、
できないことがぶちあたると詰むw
ボトムアップでできることをすすめていくとなんとなくできるが
構造がつぎはぎがちになってこれまた詰むw

54:名前は開発中のものです。
12/06/16 01:32:08.71 jHlZdwvo
そうやって何回か挫折したあと、
ようやく曖昧でない技術だけでトップダウンで作れたりするわけだなw

55:名前は開発中のものです。
12/06/16 03:18:05.37 68T9ppY9
>そのジャンルの慣例とか定石が知りたいって意味なのか?
そうなんだけど、結局そういうのはないんだよね。
一つは仕様の差があるのと、もう一つは速度を意識しないといけないから。
Webプログラミングなんか単純な定石で固まってるのに。。。

56:名前は開発中のものです。
12/06/16 08:40:45.89 g/FHKcnz
速度って?

57:名前は開発中のものです。
12/06/16 09:18:08.83 jHlZdwvo
パフォーマンス、処理速度のことかな
どっちかというとC++スレ向きの話な気もする

58:名前は開発中のものです。
12/06/16 10:30:18.83 iPRJGfcu
>>53
トップダウン以外ありえない
最初に見落としがあるとかで技術的な壁にぶち当たったら
涙を飲んで、今の技術の範囲内で実現できるやり方に変える
詰んだとかいうのは気合が足らん

59:名前は開発中のものです。
12/06/16 10:33:40.85 vg/FkkM9
ボトムアップってそもそも何も出来なくなっちゃう
やっぱりトップダウンやな

60:名前は開発中のものです。
12/06/16 11:00:35.06 Qa0gMaFC
トップダウンで計画を立ててボトムアップでプログラムするのが普通だろ

61:名前は開発中のものです。
12/06/16 11:08:41.57 PiAa+uCj
男ならビッグバン

62:名前は開発中のものです。
12/06/16 11:17:12.71 9rRC3z3M
ミドルスパイラルでやるわ

63:名前は開発中のものです。
12/06/16 11:33:24.16 gC+F1zHc
アジャイルでいいじゃん

64:名前は開発中のものです。
12/06/16 11:47:43.50 hUY4K/cc
\エクストリーム!/

65:名前は開発中のものです。
12/06/16 12:19:34.67 JX4kMjks
作るゲームジャンルや規模によっていろいろだよな

66:名前は開発中のものです。
12/06/16 15:05:51.92 lAL10UnG
ボトムアップ設計はラッパークラス作る場合には必須だと思うんだが・・・

67:名前は開発中のものです。
12/06/16 18:20:48.64 gf1z4GH6
まず瞑想して
設計の全体像を考えたら思いつく所からコードを書き連ねて行く

68:名前は開発中のものです。
12/06/16 18:36:22.18 Qa0gMaFC
瞑想のリファレンスマニュアルください

69:名前は開発中のものです。
12/06/16 18:42:35.63 fQVFYSdj
WaitTimer(10000000);

70:名前は開発中のものです。
12/06/17 20:51:12.09 20AYiLEd
ヴァルキリープロファイルみたいな感じに動いてるドット絵ってどうやって処理してるんですか?
部位ごとにアニメーションさせて、この部位はこの位置から描画とか決めたクラスで包めばいいんですかね・・・

サンプルとか館見ると同じ間隔で画像切り替えぐらいしか書いてなくて、
もうちょっと凝った演出を知りたかった

FLASHみたいに簡単にアニメーションを作成できるツールがほしい・・・

71:名前は開発中のものです。
12/06/17 22:40:34.52 0wIWZUWg
ドラクエ7だったか忘れたけど戦闘に入る時の画面が割れるようなトランジションを応用すればやれるんじゃない?

72:名前は開発中のものです。
12/06/17 23:03:15.28 lOzo+vgL
>ヴァルキリープロファイルみたいな感じに動いてるドット絵

まずそれが一般人には分からん 動画うpくらいしろ

73:名前は開発中のものです。
12/06/17 23:20:48.21 20AYiLEd
>>72
すみません、こんな感じです
URLリンク(www.youtube.com)


74:名前は開発中のものです。
12/06/17 23:35:44.60 HrR/KzXb
コマ数の感じからして、これは画像としては1コマずつ全身像を持ってるんじゃないかな
ドット絵を起こすときに絵師がパーツごとに工夫して描いたりはするだろうけど、
そこは絵師の分担

75:名前は開発中のものです。
12/06/17 23:58:20.42 20AYiLEd
なるほど・・・これ全身絵の連続だったんですね
主人公の周りに浮いてる盾とか、独立してるように見えてました

76:名前は開発中のものです。
12/06/18 07:28:53.95 2Xpty7nn
VPは武器変えてもグラフィック変わらんからそうだろうね

77:名前は開発中のものです。
12/06/18 11:14:42.31 5Ku1SYVl
いや
多間接+アニメーション
だろ
URLリンク(www.youtube.com)
これ見りゃ分かるけど
半透明になると武器や縦が持ってるキャラの向こう側にある時も透けて見える


78:名前は開発中のものです。
12/06/18 13:14:23.21 vC8kjyFS
多関節キャラを半透明にすると、継ぎ目のところが重なって見えちゃうよ。
盾だけ別パーツになってるんだと思う。

多関節で動かしてから、一枚絵に合成して表示するという方法もあるけど、
普通に描くよりモーション作成等の手間がかかるから、そんなことやらないと思う。

79:名前は開発中のものです。
12/06/18 13:19:34.17 cTKqEOS9
あのゲーム処理落ち一歩手前で頑張ってるからそんな面倒な事でも軽くなるならやってるかもしれん

80:名前は開発中のものです。
12/06/18 13:28:04.70 ZeG3Xhp6
中期テイルズのキャラドットとか、おそろしい分割具合だったな

81:名前は開発中のものです。
12/06/18 13:59:12.93 2XV93Hgu
適当に作っていった縦シューに「そうだ影をつけよう」と思っただけで詰む
他の敵に影が重なるのを防ぐには、タスクを表示優先順位でリストでつなげた管理で困ってしまった
全てのスプライトをフレームごとに登録してソートして表示する仕組みを作ろうとして詰んだ

正解は想像するに、表示を機体の表示Renderと影の表示KageRenderに分けて
まずすべてのタスクで影表示、つぎに表示優先度通りに機体を表示、で足りてた

82:名前は開発中のものです。
12/06/18 14:12:34.54 ZeG3Xhp6
すべてのスプライトを描画順位つけて登録して描画するのが一番スマートだし、
今後の為にも頑張っといたほうがいいと思う

コンテナに積むならvectorが楽
ランダムアクセスしないし、ソートしやすいし

83:名前は開発中のものです。
12/06/18 15:39:25.93 dl1gwuYM
Zバッファとか使えないの?

84:名前は開発中のものです。
12/06/18 16:02:00.47 ekACzriP
影とか、本当は一番スマートなのは、Zバッファ用にfloatフォーマットで用意したオフスクリーンの単一バックバッファに
光源ベクトルからレンダして、描画処理時にそれ参照して影落とす方法だけど、
シェーダ書けない環境だと無理

85:名前は開発中のものです。
12/06/18 16:33:10.30 +pEuOF5Y
縦シューなら、

自キャラ Z高

地形    Z低

でZバッファでなく、Z位置をキャラと地形の真ん中にいれて
影モデルを真っ黒にして描画したらそれなりにみえるのでは?
2dでも3dでもこれでできるとおもうけど

86:名前は開発中のものです。
12/06/18 16:36:35.91 swRvSspO
Zバッファ使ったら重いだけだろ。

>表示Renderと影の表示KageRenderに分けて
これでいい。だけど半透明の影だと重なった影の濃さが問題かな。

87:名前は開発中のものです。
12/06/18 18:43:50.15 ekACzriP
>>85ー86
Zバッファって別に特別な別の機能な訳じゃなくて、
その高低を判断して描画される時、そのもので中で使われる仕組みだよ
DXLibの範囲だけで触ってるとわかりにくいかもしれないが


88:名前は開発中のものです。
12/06/18 18:51:12.30 ekACzriP
あと、ピクセルのアルファ値使った合成についても、結局ざっくりしたラッパーであるDXLibの中の、
そのまたさらに通常の固定パイプラインの中で、結局ピクセルシェーダで演算された合成結果が出てる訳で、
その辺スマートに扱おうとすると、要る処理だけ自分で書いてまとめた方が、本当のところ都合が良かったりする


89:名前は開発中のものです。
12/06/18 20:02:13.95 N+BjhSyI
その縦シューの画面アップしてくれたら簡単な方法がわかるんじゃない
縦シューといっても3D見下ろし、2Dスプライトどちらかわからないし
一枚テクスチャにUV移動させてもいいかもしれないし


90:名前は開発中のものです。
12/06/18 20:17:44.89 GtGNALcx
3D背景に2Dキャラでお願いします

91:名前は開発中のものです。
12/06/18 21:25:51.65 swRvSspO
>>87
私は2D前提で話してるけど、Zバッファは切るもんだと思ってる。

2Dシューティングの影で、重なりや高低による濃さをちゃんとやるなら
ピクセルシェーダよりスレッド+ソフトイメージ(CPU+システムメモリ)で
やるのがいいと思うぞ。



92:名前は開発中のものです。
12/06/18 21:29:21.30 6uMWAvog
表示優先度順の描画は、表示優先度順ソートをつけたコンテナMAPに積み込むのが
よさそうに思えるけど実際はどうなんだろう

93:名前は開発中のものです。
12/06/18 21:40:43.38 74uIEgSo
シューティングゲームの処理の順番ってどうすればいい?

キャラクターの移動
攻撃のあたり判定
キャラクターの攻撃
キャラクターの被弾時のリアクション

94:名前は開発中のものです。
12/06/18 21:49:02.80 6uMWAvog
入力判定とプレイヤーのアクション
敵と敵弾のアクション
それ以外のアクション
当たり判定
描画

ってやってるけど、根拠は忘れた
ただ途中で何回か直した記憶はある

95:名前は開発中のものです。
12/06/18 21:53:14.82 VyyWKTHf
強いて言えば攻撃の前に当たり判定と消滅があった方が良いくらいで後はどうでもいいんじゃね?

あと余談で俺の場合だけど、速さの表現には移動距離を大きくするんじゃなくてイベントのループ回数を増やしてる

96:名前は開発中のものです。
12/06/18 22:01:36.52 2XV93Hgu
一回の移動を一ドット以内にすれば「一度に4ドット移動させたらすり抜けちゃった」ということも無いね
一ドット移動を四回すれば当たり判定の抜け落ち無し
でもそのときには当たり判定も四回する必要ありますね

97:名前は開発中のものです。
12/06/18 22:16:00.37 5HNoyOPq
>>95みたいにしないと曲線の時とか直前の情報持たせることになって面倒なのよね

98:名前は開発中のものです。
12/06/18 22:26:12.45 6uMWAvog
うむ、わからん

99:名前は開発中のものです。
12/06/18 22:42:44.06 LwyhauT4
凄い速度の時にキングクリムゾンが発生する

100:名前は開発中のものです。
12/06/18 23:04:39.62 GtGNALcx
ループ回数を増やすの意味が分からない
処理の回数を増やして何回にも分けて移動するってこと?

101:名前は開発中のものです。
12/06/18 23:14:01.61 6uMWAvog
すり抜けはわかる
・直前の情報とは
・ループ回数増やしたら当たり判定も増やさないと意味ないけどそこをどうしてるのか
がわからん
前者は、例えばどんな速度でも軌跡は同じ、というタイプの移動をさせることを意味しているのかもしれない
曲線運動をさせる場合、そのタイプの移動もありうるけど、
速度を上げると旋回半径も広がるようなタイプの移動もありうる、と思う

102:名前は開発中のものです。
12/06/18 23:18:28.07 eP18lNyV
>>100
だと思うよ。
1フレームに10ドット移動するキャラが居るとして、
内部的には、キャラの座標を一気に+10するんじゃなく、+1移動を10回や、+2移動を5回などとして処理する。

ま、呼び出し側は Move(10); みたいに書くことになるだろうけど。

103:名前は開発中のものです。
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