板検索:
DXライブラリ 総合スレッド その19 (519)
まとめビュー
重複読み込みスレ:このスレは、2重読み込みでレスが重複している可能性があります。修復する場合はこちらをクリックしてください。
1
名前は開発中のものです。[sage]   投稿日:2016/01/05 23:44:29  ID:fkNSYSkc.net(4)
Cを習得した程度のスキルでも、ゲームのグラフィックを比較的容易に描画する事のできる、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

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

【関連スレ】
C/C++ゲーム製作総合スレッド Part7 [転載禁止](c)2ch.net
C/C++ゲーム製作総合スレッド Part7
ゲームプログラムなら俺に聞け32(c)2ch.net
ゲームプログラムなら俺に聞け32 /プログラム板

●DXライブラリではなくDirectXの質問ならこっちへ
【C++】 DirectX初心者質問スレ Part39 【C】 [転載禁止](c)2ch.net
【C++】 DirectX初心者質問スレ Part39 【C】 /プログラム板


2
名前は開発中のものです。[sage]   投稿日:2016/01/05 23:46:42  ID:fkNSYSkc.net(4)

3
名前は開発中のものです。[sage]   投稿日:2016/01/06 02:07:33  ID:bl/881x8.net(2)
埋め

4
名前は開発中のものです。[]   投稿日:2016/01/06 04:35:21  ID:vkTt7kSt.net(2)
DirectXを利用したゲーム開発のためのライブラリ「DXライブラリ」に脆弱性 - 窓の杜
http://www.forest.impress.co.jp/docs/news/20160105_737584.html

5
名前は開発中のものです。[sage]   投稿日:2016/01/06 09:50:52  ID:uUHWeNkD.net(2)
すれたておつ〜

6
名前は開発中のものです。[sage]   投稿日:2016/01/06 13:49:00  ID:vToozi2l.net(2)
即死回避

7
名前は開発中のものです。[sage]   投稿日:2016/01/06 21:48:53  ID:FPsnS4s5.net(2)
リスポーンキル回避

8
名前は開発中のものです。[sage]   投稿日:2016/01/06 22:07:03  ID:SNpTpPa+.net(4)
char binadata[10000000]ってやったらエラーが出た
char binadata[9000000]だったら大丈夫だった
char binadata[10000000]でもグローバル変数だったら大丈夫だった

なんでグローバル変数だと大丈夫なん?
使うメモリの容量がローカル変数とグローバル変数では違うの?
コメント2件

9
名前は開発中のものです。[sage]   投稿日:2016/01/06 22:27:40  ID:D/YIuxFU.net(2)
ローカルメモリはスタックメモリに配置されるからって
大学でならわなかったかい?


10
名前は開発中のものです。[sage]   投稿日:2016/01/06 23:21:49  ID:SNpTpPa+.net(4)
はい、ならいませんでした

11
名前は開発中のものです。[sage]   投稿日:2016/01/07 10:01:18  ID:Fegao3sZ.net(2)
エラーってstack overflow?
初歩的すぎる

12
名前は開発中のものです。[sage]   投稿日:2016/01/12 13:01:35  ID:edPYChEu.net(2)
記憶域でのスタックと静的領域とヒープの3つを理解し
適切に使い分けられなければ
蹴り入れられても文句言えない

C言語入門からやり直すべきよ

13
名前は開発中のものです。[sage]   投稿日:2016/01/24 15:52:14  ID:YuKcV9Os.net(2)
やり直すというより、>8は現在進行形のC入門者なんだと思う

14
名前は開発中のものです。[sage]   投稿日:2016/01/25 17:48:18  ID:sajU6FWk.net(4)
ttfファイルを読み込んで使ってるんだけど、あらかじめ同じフォントがインストールされているとサイズがおかしくなる
どうにかならない?

15
名前は開発中のものです。[sage]   投稿日:2016/01/25 20:30:11  ID:sajU6FWk.net(4)
LoadFontDataToHandle関数で解決しました

16
名前は開発中のものです。[sage]   投稿日:2016/02/18 16:31:02  ID:hWOqPyim.net(2)
今更だけどこれって
「ディーエックスライブラリ」?
「デラックスライブラリ」?
前者で読んでるけどどっちなんだ

17
名前は開発中のものです。[sage]   投稿日:2016/02/18 18:15:07  ID:CD7aF1NM.net(2)
もともと DirectX のDXだからディーエックスでいいんじゃない

18
名前は開発中のものです。[sage]   投稿日:2016/02/18 19:31:57  ID:qySKf0j4.net(4)
ここで聞いていいのか分かりませんが

14歳からはじめるC言語わくわくゲームプログラミング教室 Visual Studio 2013編のP105に

 もし複数のキーが同時に押された場合、GetJoypadInputState関数は押されたキーを表す定
数を合計した数値を返します。たとえば←と↑が同時に押された場合、PAD_INPUT_LEFT(実
体は整数の2)とPAD_INPUT_UP(整数の8)の合計(つまり 10 )が返さます。キーを表す定数
には2進数で表すとビットが重ならない数値が割り当てられているので、合計してもキーを表す
ビットの状態は変わりません。

←↑の同時押し ↑→の同時押し
0000 0010(2) 0000 1000(8)
+0000 1000(8) +0000 0100(4)
──────── ────────
0000 1010(10) 0000 1100(12) 

とあるんですが、テンキーって
789
456
123
だから
↑8
←4  →6  
↓2
になって、←↑の同時押し:4+8=12、 ↑→の同時押し:8+6=14だと思うんですが、DXライブラリでは
↑8
←2  →4  
↓6
になるんでしょうか?
コメント4件

19
名前は開発中のものです。[sage]   投稿日:2016/02/18 20:15:38  ID:pY1Vnnd1.net(2)
>18
多分その書籍は「同時押ししても別々に認識できる」
というのを示したかっただけな感じがするので
実際の割当がどうなっているのかはあまり気にしなくていいと思います

あと、テンキーの数字と割当整数がそのまま対応しているわけではないです

20
名前は開発中のものです。[sage]   投稿日:2016/02/18 21:30:32  ID:w6GurFPy.net(2)
その数字のままだったら、2+4と6単体と区別つかないだろう
2進数慣れといたほうがいいよ

21
名前は開発中のものです。[sage]   投稿日:2016/02/18 22:26:00  ID:qySKf0j4.net(4)
皆さんありがとう
この部分の前後読んでもさっぱり分からないので
これ以上気にしないで先に進むことにします
この先具体例が出て来るかも知れませんしね

22
名前は開発中のものです。[sage]   投稿日:2016/02/19 07:22:42  ID:g+RjjMNz.net(2)
ビット演算調べて。
一桁目が1 0001 1x1=1
二桁目が1 0010 1x2+0=2
三桁目が1 0100 1x2x2+0x2+0=4
四桁目が1 1000 1x2x2x2+0x2x2+0x2+0=8
2になると一桁上がるから2進数。
普通の10進数も、例えば、1234は
=1x10x10x10+2x10x10+3x10+4

一つのキーが押されているか押されていないかを表現するのには0と1で充分。
つまりキーが4つなら0000から1111で表現できる。
キーの組み合わせはビットのor演算になる。
2進数だから足し算と結果は同じになるけど。

逆に一つのキーの状態を調べるのはandで。

23
名前は開発中のものです。[sage]   投稿日:2016/02/19 17:10:56  ID:yVHYDmTr.net(2)
こうして見てると、ビット演算を他人に教えるって結構大変そうだな

24
名前は開発中のものです。[sage]   投稿日:2016/02/19 20:45:32  ID:9rsuXZwb.net(2)
ビット演算の話なのか?

俺はてっきり
if( GetJoypadInputState( DX_INPUT_PAD1 ) & PAD_INPUT_UP )
みたいに識別子と論理積を使って判定するのではなく

if( GetJoypadInputState( DX_INPUT_PAD1 ) == 8 )
みたいにその数字で直接入力判定してるから、テンキーの割り当て整数を知りたい
っていう話をしているのかと思ったんだけど

25
名前は開発中のものです。[sage]   投稿日:2016/02/20 10:04:02  ID:EkX5eIPD.net(2)
わざわざそんなことするメリットなくね?

26
名前は開発中のものです。[sage]   投稿日:2016/02/21 02:51:09  ID:M/Be+VbG.net(16)
とりあえず、入力状態を調べる関数の返り値を2進表記文字列と10進表記文字列で対にして画面左上に表示するだけの簡単なアプリ作っても良いかと思う。

と、ここで気になって調べたら、2進文字列への変換は
Cはitoa←VCでしか使えない? 今回は使えるかな
C++はstd::bitset

簡単なはずなのに、簡単でない気がしてきた。
用途限定なら自作した方が楽な(学べる)気もする。

27
名前は開発中のものです。[sage]   投稿日:2016/02/21 04:47:37  ID:M/Be+VbG.net(16)
>if( GetJoypadInputState( DX_INPUT_PAD1 ) & PAD_INPUT_UP )

&(and)だから特定の一つのキーが、押されているかのチェック
押されていなければ0、つまり偽 FALSEになりif以降は実行されない。
押されていれば0以外 真となりifは実行される。
if ((GetJoypadInputState(DX_INPUT_PAD1)&PAD_INPUT_UP) !=0)
これが省略されているのが一行目。
0であるならば、0以外であるならば、機械は基本たったこれ2つの判断で分岐する。!=0は0でないなら、の意味。not イコール 0

while(1)とかも同じ考え方。これは条件が常に真(偽(0)ではない)なので無限ループになる。
for(初期化(が多い);継続の条件;条件が真なら行うこと)
いずれ条件が偽になるからこそ使えるということ。

>if( GetJoypadInputState( DX_INPUT_PAD1 ) == 8 )
というかね、それならまだ
if(GetJoypadInputState(DX_INPUT_PAD1)==(PAD_INPUT_UP|PAD_INPUT_LEFT))
こういう例をあげてくれたほうが嬉しかったかな。
|を+にかえても思ったとおりに動作はするかも知れないが、それではいけないということ。

28
名前は開発中のものです。[sage]   投稿日:2016/02/21 05:53:09  ID:M/Be+VbG.net(16)
if(GetJoypadInputState(DX_INPUT_PAD1)&(PAD_INPUT_UP|PAD_INPUT_LEFT))
にしないと使えないね。

寝ます。

29
名前は開発中のものです。[sage]   投稿日:2016/02/21 06:01:12  ID:M/Be+VbG.net(16)
ごめんこれも使えなかった。
同時に押された判定はすこし長くなるな。
このままではどちらか片方押さた場合でも、、、
眠い。ほんと寝ます。

30
名前は開発中のものです。[sage]   投稿日:2016/02/21 08:09:43  ID:M/Be+VbG.net(16)
if(GetJoypadInputState(DX_INPUT_PAD1)&(PAD_INPUT_UP|PAD_INPUT_LEFT)==(PAD_INPUT_UP|PAD_INPUT_LEFT))
一つのキーチェックは!=0でいいけど
ボタン1|ボタン2|ボタン3
とか複数キーが押されているかのチェックの場合は駄目ですね。一つのキーが押されただけでも!=0を満たしてしまうから。
連投すいません。そして初級者以外の方、失礼しました。

31
名前は開発中のものです。[sage]   投稿日:2016/02/21 08:25:35  ID:M/Be+VbG.net(16)
if((GetJoypadInputState(DX_INPUT_PAD1)&(PAD_INPUT_UP|PAD_INPUT_LEFT))==(PAD_INPUT_UP|PAD_INPUT_LEFT))
すいません。もう一度だけ。
c 演算子 優先順位 で検索してください。
確か&(アドレスじゃない方)は==よりあとに評価された気がする。これはCの欠陥ではないのかとか書いてた書籍があった気がする。

不安だし、()はつけといたほうが良いと思う。

32
24[sage]   投稿日:2016/02/21 09:00:22  ID:Va9zPPiV.net(4)
なぜ俺が適当に上げた例に対して
何レスにも渡って解りづらい解説をしているのだ・・・

というか肝心の>18はもう居ないっぽいから
質問したかった内容自体がそこで合ってるのかわからんぞ

33
名前は開発中のものです。[sage]   投稿日:2016/02/21 09:24:49  ID:M/Be+VbG.net(16)
これでも簡単に書こうとしたのですけどね。
どの辺がわかりづらいですか?
簡単なことを簡単に書くのは難しいですね。
コメント2件

34
名前は開発中のものです。[sage]   投稿日:2016/02/21 10:04:32  ID:Va9zPPiV.net(4)
>33
説明が長くなるほど要点をつかみづらくなるから
補足は少なく、説明の訂正は出ないようにして、
大事な部分だけ短く簡単に説明した方が初心者には理解しやすい

補足とかは質問者に求められたときだけ説明すればいいかと
コメント2件

35
名前は開発中のものです。[sage]   投稿日:2016/02/21 11:11:53  ID:M/Be+VbG.net(16)
>34
了解です。

36
名前は開発中のものです。[sage]   投稿日:2016/02/29 21:14:11  ID:QBvMTSC4.net(2)
DXLibは初心者向けって聞くけど、シャープDXなどと何が違うの?
2Dゲームの場合。3Dなら素直にUnity使うし

37
名前は開発中のものです。[sage]   投稿日:2016/02/29 23:23:38  ID:leqKH6jq.net(2)
シャープDXってなんぞ。
初心者にオススメの1つではあるが、これで作られた市販ゲームもあるくらいには幅広いよ

38
名前は開発中のものです。[sage]   投稿日:2016/03/01 05:56:45  ID:+UwmpDoJ.net(2)
C言語で書きたくてwindowsAPI、グラフィックAPI触りたくない人向け

39
名前は開発中のものです。[sage]   投稿日:2016/03/01 15:06:45  ID:YBHnpXlS.net(2)
確かにC++ぽく作られてないのは嬉しい。
他の人のソースコードとかが解読しやすい。

40
名前は開発中のものです。[sage]   投稿日:2016/03/02 02:56:18  ID:ObT9YhJL.net(2)
俺もライブラリ作ってやるぜ!と意気込んで、
グラフィックと入力と音周りが出来たあたりで、DXライブラリで良いんじゃね?と気づいて戻ってくる感じ

41
名前は開発中のものです。[sage]   投稿日:2016/03/10 14:06:18  ID:hKSGgP4O.net(4)
キャラクターIDをソートする場合なんですけど
こういう場合はやっぱりバケットソート的なアルゴリズムが最速なのでしょうか?
条件
・10000体のキャラクターがいる(ID0〜ID9999)※ID0番は空欄扱いの時に使うので実質9999体
・それぞれのキャラクターはスコアを持ってる(とりうる値はunsigned charの0〜255)
・ソートする時はスコアの低い順に並べる
・スコアが同点ならIDが若い順に並べる

自作した処理の概要
int baketu[10000*256];
int kekka[10000];

まず配列baketu[]を0クリアして
for(int ID=1;ID<10000;ID++){
baketu[(IDのスコア*10000)+ID] = ID;
}
int x=0;int i=0;
while(x<9999){
if(baketu[i]>0){kekka[x]=baketu[i];x++;}
i++;
}
こんな感じです
int baketu[10000*256] ←なんかこれで10メガくらい使うみたいですし
もっとスマートなやり方は無いものでしょうか?

ただ、かなり頻繁に呼ぶ処理なので最優先したいのは速度です
コメント2件

42
名前は開発中のものです。[sage]   投稿日:2016/03/10 14:23:40  ID:chbXq+m7.net(2)
普通にクイックソートでいいのでは

ソート時間の比較
http://www.ics.kagoshima-u.ac.jp/~fuchida/edu/algorithm/sort-algorithm/speed-c...

43
名前は開発中のものです。[sage]   投稿日:2016/03/10 14:44:23  ID:w2U+RHTk.net(4)
そもそも頻繁に呼び出すなら
いちいちソートしないでソート結果をずっと保持する。
オブジェクトの追加削除が頻繁なら、
ソートではなく、正しい位置に差し込むようにする。
コメント2件

44
名前は開発中のものです。[sage]   投稿日:2016/03/10 14:44:30  ID:HzV85MQu.net(2)
RPGなどのスクロールゲーは、描画可能画像(マップサイズ)を作ってそこに描画した後に、ウィンドウに描画すればいいのですか?
速度やメモリを考えると、やめた方がいいですかね
コメント2件

45
名前は開発中のものです。[sage]   投稿日:2016/03/10 15:25:16  ID:hKSGgP4O.net(4)
>43
スコアの変更をするたびに並び替える関数を呼ぶってことでしょうか
その場合は一般的なソートではなくて、条件が限定されてる場合ならではの最適解があると考えて間違いないですよね?


あと今思ったんですけど>41の処理って下記の処理と速度ほとんど変わらない…?
int kekka[10000];
int x=0;
for(int i=0;i<256;i++){
 for(int ID=1;ID<10000;ID++){
  if(IDのスコア==i){
   kekka[x]=ID;
   x++;
  }
 }
}

46
名前は開発中のものです。[sage]   投稿日:2016/03/10 21:20:58  ID:w2U+RHTk.net(4)
どっちも2,560,000ループだから変わらないね。
可読性なら、俺は45のほうが解りやすかった。
(というか45を読んでようやく41がなにをしたいのか解った)

スコアの変動幅が少ない(=順位の変動が少ない)なら、
スコアが変わるたびに前後のスコアと比較して入れ換えるやりかたでもいいかな

スコアが頻繁に変わるなら
数秒毎にまとめてquicksort

47
名前は開発中のものです。[sage]   投稿日:2016/03/11 00:14:12  ID:0nAdN0wU.net(2)
>44
何が言いたいのか分からんが
ウィンドウより気持ち広めに描画すればいいんじゃないの?

48
名前は開発中のものです。[sage]   投稿日:2016/04/22 20:37:11  ID:OBq0v7em.net(2)
スマホ版DXライブラリ使ってみた人いる?

49
名前は開発中のものです。[sage]   投稿日:2016/04/22 23:20:09  ID:SApaeOWl.net(2)
純粋なc#でDXライブラリ作りたいと考えてる

50
名前は開発中のものです。[sage]   投稿日:2016/04/23 15:51:01  ID:dvo5BuGI.net(2)
フレームレートを上げてゲームの進行の高速化をしたいけどどうすればいいの?
setgraphmodeの第4引数に値をぶっこんでも何も起きん

51
名前は開発中のものです。[sage]   投稿日:2016/04/23 21:52:14  ID:9QnQQ2rD.net(4)
> 画面モードを設定する
> int SetGraphMode(int ScreenSizeX,int ScreenSizeY,int ColorBitDepth,int RefreshRate=60)

> 戻り値
> DX_CHANGESCREEN_OK 画面変更は成功した
> DX_CHANGESCREEN_RETURN 画面の変更は失敗し、元の画面モードに戻された
> DX_CHANGESCREEN_DEFAULT 画面の変更は失敗しデフォルトの画面モードに変更された
> DX_CHANGESCREEN_REFRESHNORMAL 画面の変更は成功したが、リフレッシュレートの変更は失敗した

とりあえず戻り値の確認しとけ。
あとはフレーム管理をどうやってるかによると思う。
垂直同期に丸投げしないで自前でフレーム管理してるなんてオチは……流石にないか
コメント2件

52
名前は開発中のものです。[sage]   投稿日:2016/04/23 22:17:31  ID:kA71q19C.net(2)
SetWaitVSyncFlag(FALSE)
コメント4件

53
名前は開発中のものです。[sage]   投稿日:2016/04/23 23:16:26  ID:O3+kZkoe.net(2)
 ゲームループを秒間60回さなくても高速処理できちゃうの?
 元より軽く作って、普段はウエイト入れてるだけにしないといけないんじゃないかな。
コメント2件

54
名前は開発中のものです。[sage]   投稿日:2016/04/23 23:49:59  ID:9QnQQ2rD.net(4)
>53
何を疑問に思ったが知らんが、最初からそういう話じゃねぇの
コメント2件

55
名前は開発中のものです。[sage]   投稿日:2016/04/24 08:09:36  ID:5496X3BE.net(2)
>52
thx。クソ速くなりました
しかしSetWaitVSyncFlagの変更はDxLib_Init前でないと利かないようです
起動中に進行速度を自由に調整したかったのですが難しそうです
コメント2件

56
名前は開発中のものです。[sage]   投稿日:2016/04/24 09:15:29  ID:nXkxGb8d.net(2)
いやだからフレーム管理方法なんて複数あるんだから
使い分ければいいじゃない

57
名前は開発中のものです。[sage]   投稿日:2016/04/24 09:50:30  ID:joRVkrHg.net(2)
>55
頭はゲームの内容を考えることに使った方がいいと思います

58
53[sage]   投稿日:2016/04/26 22:34:03  ID:x+Gf6b1S.net(2)
>54
 すいません、今自分で作っているモノが何をしても60フレームで安定しているものですから、逆の意味で頭を抱えていたんです。
 で、>52氏の教えに従いVSYNCを外したら2000前後を叩きだしたので、>51氏の最後の隠しパラメータRefreshRate=60の意味が分かりました。
 本当にありがとうございました状態ですm(_ _)m

 初挑戦で5年ばかり仕様に気が付かないとか、ちょっと笑えます(^^;

59
名前は開発中のものです。[sage]   投稿日:2016/05/04 00:59:12  ID:vZnLncWj.net(2)
まあ使う機会があるかどうかは全く別の話だしなー

60
名前は開発中のものです。[sage]   投稿日:2016/05/06 14:02:59  ID:l2ANUrOw.net(6)
今更だけど、リフレッシュレート変えるのはアカンだろw
垂直同期もオフにすんなw
根元でフレーム間の時間経過を定数倍するとか、
更新処理を複数回呼ぶとかいろいろやり方あるだろが
コメント2件

61
名前は開発中のものです。[sage]   投稿日:2016/05/06 14:26:18  ID:jbS1d0cx.net(4)
>60
一般に、60決め打ちとかのほうが
初心者には作りやすいと思うぜ
コメント2件

62
名前は開発中のものです。[sage]   投稿日:2016/05/06 15:26:36  ID:l2ANUrOw.net(6)
>61
そういう原始的な作りでも更新処理を複数回呼べばいいだけだし・・・
まあ入門サイトにありがちな経過フレーム数を1とする可変更新方式はゴミなんで
さっさと止めたほうがいいと思うよ
コメント2件

63
名前は開発中のものです。[sage]   投稿日:2016/05/06 19:13:13  ID:jbS1d0cx.net(4)
固定するならタイマー管理なのかねぇ
最近は120Hzとかのモニタも珍しくないし


>入門サイトにありがちな経過フレーム数を1とする可変更新方式
どんなん?

64
名前は開発中のものです。[sage]   投稿日:2016/05/06 21:28:30  ID:Grw/W8UC.net(2)
俺も垂直同期切ってタイマー管理だな
75ヘルツのモニターで早送りになった経験があるから

65
名前は開発中のものです。[sage]   投稿日:2016/05/06 22:18:18  ID:l2ANUrOw.net(6)
固定更新のために垂直同期切ってタイマー管理はありだけど
ティアリングが気になったりしない?

>62はちょっと分かりにくかったかな
要は垂直同期をとりながら更新をカウントしてるようなタイプね
メジャーなところだと龍神録とか
この方法は環境の違いを直接受けるし、その対処も醜くなるんだよ

66
名前は開発中のものです。[sage]   投稿日:2016/05/07 01:18:08  ID:oS0WNQLp.net(2)
固定にするなら、リフレッシュレート制御かテアリングか
どっちかを取るしかないんじゃないの?

>カウント
龍神録ちろっと見てみたけど分からんかった
単位時間あたりのループ回数をチェックして、それ超えそうになったらウェイト入れる感じ?

67
50[sage]   投稿日:2016/05/08 09:38:16  ID:y6rKy2Br.net(2)
2フレームに一度スクリーンフリップをすることでゲームの進行速度が2倍になりました
ゲーム中に速度の変更がきくようになったので目的は達成し解決しました

68
名前は開発中のものです。[sage]   投稿日:2016/05/11 22:20:44  ID:bMgn9LMw.net(2)

69
名前は開発中のものです。[]   投稿日:2016/06/07 01:07:55  ID:hB66gw1M.net(2)
垂直同期でやってるけど何故かFPSが59.9が多いんだよな
偶に60いくんだけど。龍神録のFPS管理は何故か57FPSになる

70
名前は開発中のものです。[sage]   投稿日:2016/06/07 11:13:02  ID:AssHyOle.net(2)
もともとNTSCの垂直同期って59.94Hzだけど
今のは完全に60Pなんかね
コメント2件

71
名前は開発中のものです。[sage]   投稿日:2016/06/07 20:41:15  ID:wUcW1H+O.net(2)
龍神録のところのプログラムって、垂直同期とタイマー待機を同時にやってた気がする
どっちかだけにするといいはず
コメント2件

72
名前は開発中のものです。[]   投稿日:2016/06/08 16:24:56  ID:uqtESUHJ.net(2)
>70
だからか、東方だと60FPSが多いからなんでだと思ってた
>71
龍神録のタイマー待機関数をSleepからWaitTimerにしたらいくらかマシになったけど
なぜか垂直同期を切ってFPS制御するより垂直同期とFPS制御を同時にやった方が軽くなった

73
名前は開発中のものです。[sage]   投稿日:2016/06/21 16:36:29  ID:bN0TQeIa.net(2)
LoadGraph等で同じ画像を複数回読み込んだときは、やはり同じ画像が複数個分メモリに展開されるのだろうか?

74
名前は開発中のものです。[sage]   投稿日:2016/06/21 18:42:57  ID:YpRlukE1.net(2)
うん

75
名前は開発中のものです。[sage]   投稿日:2016/06/21 19:13:04  ID:2iYzZ5We.net(2)
画像を改変したりして複数いるなら1回読み込んで、コピーするべき
HDD等からの読み込みは遅いから

76
名前は開発中のものです。[sage]   投稿日:2016/07/20 18:57:39  ID:/hGHlgJA.net(2)
垂直同期切ってもウィンドウモードだと60fpsになっちゃうんだけどこれどうにかならない?

77
名前は開発中のものです。[sage]   投稿日:2016/07/21 02:55:43  ID:cqeRkCwh.net(2)
垂直同期切れてないんじゃない?

78
名前は開発中のものです。[sage]   投稿日:2016/08/03 16:59:01  ID:X+OZY+Fp.net(2)
仮想関数の呼び出しが遅い
最初はDXlibと関係あるのかなーと思ったけどC++の仕様っぽい
みんなも気をつけろ


79
名前は開発中のものです。[sage]   投稿日:2016/08/04 02:17:02  ID:SwoLOy80.net(2)
自分も聞いたことあるけど、それがクリティカルになるって、
他のところがボトルネックになってたりしない?

あとは最適化オプションとかで何とかなりそうではあるが

80
名前は開発中のものです。[sage]   投稿日:2016/08/04 18:34:57  ID:BM0zlQCD.net(2)
関数の呼び出し速度が気になるようじゃ元々が問題だと思うんだけど
実際に通常関数を呼ぶのと速度的にはどれくらいの差なんだろう

81
名前は開発中のものです。[sage]   投稿日:2016/08/05 17:45:28  ID:GXDTbL61.net(2)
3Dモデルのボーンをプログラムで動かすときに、
・ボーンをワールド座標の特定の場所を向くようにしたい(カメラの注視のようにボーンを一点に向けたい)
・ボーンをワールド座標の特定の角度にしたい。例えば、ボーンを水平な角度にしたい
を行いたいのですが、
ボーンを動かすのは MV1SetFrameUserLocalMatrix でローカルの変換行列を指定する方法しかないですが
どうやればできますか?

82
名前は開発中のものです。[sage]   投稿日:2016/08/07 21:54:52  ID:0nKMuJM/.net(6)
プログラムをステップ実行したときに
DXライブラリのソースにステップインするにはどうやればできますか?
Visual Studio 2013使ってます
コメント2件

83
名前は開発中のものです。[sage]   投稿日:2016/08/07 22:00:00  ID:0nKMuJM/.net(6)
ちなみにDXライブラリのソースにステップインしたい理由は
エラーコードが-1しかなくて、何が原因かわからなくて調べるためです
たまに挙動不審になったときの調査もしたいです

84
名前は開発中のものです。[sage]   投稿日:2016/08/07 22:44:42  ID:0nKMuJM/.net(6)
>82は解決しました。簡単にできましたww

85
名前は開発中のものです。[sage]   投稿日:2016/08/08 00:03:13  ID:nCWjYGMh.net(2)
自己解決した時は、どんなに簡単であってもその方法をだな

86
名前は開発中のものです。[sage]   投稿日:2016/08/08 09:58:38  ID:A5U2Nxs1.net(4)
その方法も何もDXライブラリのソース公開されているからlibファイルの代わりにソースをプロジェクトに追加するだけやん

87
名前は開発中のものです。[sage]   投稿日:2016/08/08 10:00:13  ID:z9kN9Vnb.net(2)
pdbを置くだけでしょ
ステップインしたらその時にソースの場所聞いてくるわ

88
名前は開発中のものです。[sage]   投稿日:2016/08/08 10:03:39  ID:YjIAwMDj.net(2)
という風に、人によってやり方違うので
どんなに簡単でも手順は書いておいたほうが

それが質問した人の礼儀かと
レスしようとして自分とこで検証して回答しようとしたら
自己解決しましたの一言でしまってたりすること多いしねえ

89
名前は開発中のものです。[sage]   投稿日:2016/08/08 10:12:41  ID:A5U2Nxs1.net(4)
pdbって使い道あったのか
いつも使い道分からずに放置してたわ

90
名前は開発中のものです。[sage]   投稿日:2016/08/12 09:00:00  ID:j8xGV0qx.net(2)
DXライブラリは3Dモデルの大きさをセンチメートルで管理するのがいいのか?
メートルで管理してカメラの Near Clip を小さくするとアウトラインやZTestがおかしくなる
コメント2件

91
名前は開発中のものです。[sage]   投稿日:2016/08/13 05:15:02  ID:smt/5o17.net(2)
単位は人それぞれだけど、精度を下げりゃ描画が甘くなるのはそりゃ当然よ
コメント2件

92
名前は開発中のものです。[sage]   投稿日:2016/08/13 08:56:44  ID:kHkMVs63.net(2)
Zバッファのビット深度を変更する関数があったような
デフォは16bitだから32bitとかにしてみては
コメント2件

93
名前は開発中のものです。[sage]   投稿日:2016/08/13 09:38:49  ID:cO1Dtflu.net(4)
>90
俺も以前同じようなことで悩んだわ
Near Clipは破綻しない程度に大きな値をとる必要があるとのこと
俺の場合は1メートル〜数万キロのレンジで幅が広すぎて単位をどう弄ろうがZバッファの深度を深くしようがダメだったんで、
ここで教えてもらった「ワールド空間を複数の距離レンジに区切ってそれぞれを描画し最後に合成する」手法で切り抜けた
おかげでカメラが物体から5メートルまで寄ろうが1万キロ離れようがあまり問題はなくなった
ただし代償として描画処理の負荷は上がったけど・・・

>92
SetZBufferBitDepthでZバッファの深度を変えられる
でも確か24ビットまでじゃなかったかな?

94
90[sage]   投稿日:2016/08/13 10:22:48  ID:MTyr6UWS.net(4)
>91-93
レスありがとうございます
SetZBufferBitDepthは簡単なのですぐに試してみます
「ワールド空間を複数の距離レンジに区切ってそれぞれを描画し最後に合成する」手法は
ちょっと簡単にはできなさそうですが、プロのゲームっぽいですね。すごい
コメント2件

95
名前は開発中のものです。[sage]   投稿日:2016/08/13 13:32:29  ID:cO1Dtflu.net(4)
>94
方法さえ教えてもらえればそんなややこしい実装じゃなかったよ

1. まずMakeScreen関数で合成用のサブ画面を作る
2. SetDrawScreen関数で作成したサブ画面を描画対象にしてその後カメラのパラメータを設定
3. SetCameraNearFar関数でカメラから一番遠いクリップ領域を指定
4. ワールド空間の物体を描画
5. SetDrawScreen関数で裏画面を描画対象にする
6. DrawGraph関数で合成用サブ画面に描いたグラフィックを裏画面に投下処理つきで描画
7. 2〜6をクリップ領域を1つずつ手前に近づけながらforループで必要回数だけ繰り返す
8. ScreenFlip関数で裏画面と表画面を切り替える

みたいな感じ
継ぎ目がちょっと気になるという欠点があるらしいけど、俺の作ったプログラムでは大して問題にはならなかった
コメント2件

96
名前は開発中のものです。[sage]   投稿日:2016/08/13 17:10:08  ID:MTyr6UWS.net(4)
>95
ありがとうございます。実装できる気がしてきました

97
名前は開発中のものです。[sage]   投稿日:2016/08/23 06:56:44  ID:8oK85pQf.net(4)
 すいません。 初歩的なことを教えて下さい。
 DXライブラリを3.12aから3.16d(最新版)に昨日上げたのですが、以下の様なエラーが出ます。
エラー 1 error LNK1104: ファイル 'DxDrawFunc_vs2012_x86_d.lib' を開くことができません。

 丁度ドライブが一杯になったのでそれでファイル欠損起こしたのかと、整理して落としなおして
再インストールしても変わりません。 消さないでいた3.12aに戻せば正常にコンパイルできます。
 どんなポカミスが考えられるでしょうか。

98
名前は開発中のものです。[sage]   投稿日:2016/08/23 08:00:58  ID:ZkV35hFb.net(2)
DXライブラリのフォルダの下を 'DxDrawFunc_vs2012_x86_d.lib' で検索して、
そのフォルダがプロジェクトのプロパティの「リンカー」の中の
「追加のライブラリディレクトリ」に設定されているか確認してみたか?
設定してなかったら設定する

99
97[sage]   投稿日:2016/08/23 10:52:44  ID:8oK85pQf.net(4)
 ありがとうございます。
 おっしゃるとおりでした。
 C/C++全般のインクルードディレクトリだけ変更してリンカ全般の追加を変更していなかったのが原因でした。
 これで総て正常終了できました。
 ありがとうございました。

100
97[sage]   投稿日:2016/09/16 19:48:32  ID:/GVguODS.net(2)
DrawBox()って思った以上にコスト高なのね。
エディタ作っているのですが、マウスで指定範囲を決定するのに半透明のFilling=TRUEで
サイズが{400,200}程度になると追いついて来ないし。うちの環境だと。
まあ範囲が分かれば良いだけなので、非透明のFilling=FALSEにしましたが。
機能の根幹に必要な命令じゃなくて良かった・・・。

101
名前は開発中のものです。[sage]   投稿日:2016/09/16 20:42:39  ID:arX7j3iZ.net(2)
ハードウェアで描画してないだけちゃうの?
コメント2件

102
100[sage]   投稿日:2016/09/17 02:14:24  ID:bU3etqlH.net(2)
>101
SetUse3DFlag()指定しなければデフォで使ってくれないの?
TRUEで明示してみたけどやっぱ重かった。

103
名前は開発中のものです。[sage]   投稿日:2016/09/18 05:02:11  ID:/gg7FKD1.net(2)
画面全体塗りつぶすのに毎フレーム使ったりするし重いわけないと思うがなぁ
最新版では試してないけど
コメント2件

104
100[sage]   投稿日:2016/09/22 22:23:47  ID:j/yM3Z13.net(2)
>103
 すいません、DXライブラリは無罪でした。
 コード読み直していたら、離れた所から12回ループでDrawBox()してからScreenFlip()しておりました。
 そりゃ感覚とは結果が違うのも当たり前で。
 大変失礼しました・・・。

105
名前は開発中のものです。[sage]   投稿日:2016/09/23 11:02:39  ID:grmg4z9F.net(2)
        ∧∧       
       ヽ(・ω・)/   ズコー  
      \(.\ ノ
    、ハ,,、  ̄

まぁ原因判明してよかったね

106
名前は開発中のものです。[sage]   投稿日:2016/09/26 22:11:34  ID:gS8npJwc.net(2)
スーファミっぽくラスタースクロールの波うつようなあのぐにゃぐにゃした表現をしたいんだけれども
DrawRectGraphで一列ずつ描画するのと
SetDrawAreaで描画できる範囲を一列ずつ変更しながら描画するのと
どっちが早いんだろう
コメント2件

107
名前は開発中のものです。[sage]   投稿日:2016/09/27 07:34:39  ID:6RU/4Se1.net(2)
どっちもクソ遅そうな気が……
ラスタースクロールのシェーダー書くのがいいが、
シェーダーはDXライブラリではちょっと敷居が高くてプログラム難しそうなのな
ボーンを仕込んだポリゴンの板に画面の画像を貼り付けて、
ボーンでラスタースクロールふうにアニメーションさせるのが楽な気がする

108
名前は開発中のものです。[sage]   投稿日:2016/09/27 12:29:31  ID:kk2kAC73.net(2)
10年前のPCで動くSTG(弾は500発程度)で、640*480程度なら上から一行ずつ描画でも特に処理落ちしなかった
DrawRectGraph使った

今のハードなら余裕だと思う

109
名前は開発中のものです。[sage]   投稿日:2016/10/04 20:15:50  ID:rnDdxDqG.net(2)
SetLoopAreaTimePosSoundMem()

この関数めっちゃ便利なんだけどググっても全くヒットしなかったんだが、いつ頃からあるんだろ?
ループ開始位置と終了位置をms単位で指定できるから音声ファイルを編集する必要がなくなった
無加工のファイルでもこっちの好みでループ範囲を指定できるから
音楽ファイルはこの素材屋からDLしてねってreadmeに書いておけば配布するファイルサイズも小さく出来る

あと軽く検証しただけだけど再生中に指定しなおしても有効だったから
FF6のラスボス戦みたいに
イントロ‐Aメロ‐繋ぎ‐Bメロ‐繋ぎ‐Cメロ〜 みたいになってるファイルで
最初はAメロをループ、条件を満たしたら繋ぎを経由してBメロループに移行〜みたいな演出も簡単に出来る
コメント2件

110
名前は開発中のものです。[sage]   投稿日:2016/10/04 21:56:37  ID:HgclvPkb.net(2)
そんなのあったのか
最後まで行ったら途中から再生、ってのは
結構前からあったの覚えてるんだが

111
名前は開発中のものです。[]   投稿日:2016/10/15 11:32:13  ID:NMxKtSgQ.net(2)
試してないけど

アンドロイドでも

動くように

なってたのね知らなかった

何処まで、動くのかな?

112
名前は開発中のものです。[sage]   投稿日:2016/10/16 19:58:12  ID:ZsomXKa1.net(2)
あらかじめ大きめのサイズの空っぽの画像をMakeScreenで用意しておくことの有用性に今頃気付いたぜ
これとDerivationGraphのコンビで作り直したらぐっと軽くなった

113
名前は開発中のものです。[sage]   投稿日:2016/10/16 21:02:14  ID:ldA8bGPF.net(2)
テクスチャ切り替えはコスト大きいからね

114
名前は開発中のものです。[sage]   投稿日:2016/10/23 23:02:40  ID:t2BOiWAY.net(2)
>109
 使ってみたら、ほんとにスゴイですね。
 時代がCDDAやストリーミング再生になってもう無限ループは無理なのかなーとか思っていたのだけど。
 ただWAVEで成功したのでそのデータをMP3にしたら、上手く繋がらなくなっちゃった。
 もう少しデータの作り方工夫すれば上手く行くのだろうけど。
コメント2件

115
名前は開発中のものです。[sage]   投稿日:2016/10/24 06:53:24  ID:YwSDnTaO.net(2)
>114
MP3はこの関数に限らずループの時に違和感が出ると言われてるから
たぶんMP3の仕様の問題もあると思う

ogg形式では上手くいったよ
ただ変換の時にビットレートを固定したファイルでしか検証してないから
可変ビットレートの方法で圧縮されたoggファイルで上手くいくかは未検証

116
名前は開発中のものです。[sage]   投稿日:2016/10/24 12:40:43  ID:GmlKA2wN.net(2)
MP3は権利の問題があるから他の使えって言われてた時期があったね

117
名前は開発中のものです。[sage]   投稿日:2016/10/24 13:10:36  ID:Y2gOrRK8.net(2)
権利よりも仕様が問題だな
MP3は無音が挿入されたり余計なことされる場合が多いからゲームに使うようなもんじゃない

他の環境では手抜き実装でWindowsの再生機能に丸投げできるメリットがあるが、DXライブラリなら関係ないし

118
名前は開発中のものです。[sage]   投稿日:2016/10/24 23:43:54  ID:UrCtC7CV.net(2)
ループできないからだったか、昔は
DXライブラリではogg使うなとかもあったね

119
名前は開発中のものです。[sage]   投稿日:2016/10/27 13:49:28  ID:1Lorx2LL.net(2)
昔は BGMにはmp3, 効果音にはwav だったでしょ

120
名前は開発中のものです。[sage]   投稿日:2016/10/27 15:57:58  ID:HwaxCMEV.net(4)
116の言う通りmp3はライセンス関係が危ないということで避けられoggが推奨されていた
仕様よりもこっちのほうが重大問題
ゲーム制作関係でmp3推奨というのは聞いたことがない

121
名前は開発中のものです。[sage]   投稿日:2016/10/27 17:43:02  ID:rFz+rXeH.net(2)
MP3登場時にはoggなんてなかったから
Wavよりファイルサイズの小さいMP3を推奨する風潮はあったと思うけど

122
名前は開発中のものです。[sage]   投稿日:2016/10/27 18:10:43  ID:HwaxCMEV.net(4)
ogg普及前はソフトウェアMIDIが多かった
もしmp3が主流だったと思う人がいたら、その人のいた界隈はライセンス関係の意識が薄かったんだよ
まぁ00年代前半まではそういう時期でもあったけど

123
名前は開発中のものです。[sage]   投稿日:2016/10/27 20:01:09  ID:lueiMAyc.net(2)
市販のゲームで5000本以上販売が課金の条件だったから、フリーゲームや小規模同人では普通に使われてたよ

124
名前は開発中のものです。[sage]   投稿日:2016/10/27 20:28:51  ID:BuMiN4CL.net(2)
制作中のゲームにはキャラの髪型や服や装備や小物を変えるキャラメイキング(着替え)の機能があって、
今はひとつのMV1ファイルにまとめておき、フレーム表示/非表示で切り替えてるのですが、
だんだんアイテムが増えてきてファイルが大きくなってしまったので
別の方法をとりたいのですが、
キャラメイキングや着替えを実装するのに何かいい方法ありませんか?
髪型や服や装備や小物ごとにXファイルでバラバラにしておいて、Xファイルをテキスト結合するのが
楽なのではないかと思っていますが、もっと良い方法ありませんか?

125
名前は開発中のものです。[sage]   投稿日:2016/10/31 19:03:23  ID:X+KVjoNa.net(2)
DXライブラリのユーザーが作ってるのって
2Dゲーと3Dゲーのどっちが多いんだろ?
俺は3Dには手が出せてないんだけど

126
名前は開発中のものです。[sage]   投稿日:2016/10/31 19:10:44  ID:8dsRDt6U.net(2)
2D

127
名前は開発中のものです。[sage]   投稿日:2016/11/01 22:09:07  ID:kJ7Uoghc.net(2)
3Dは海外のゲームエンジンが無料化されてしまったので、
3Dゲーム制作者はそっちへ行ってしまった気がする
2Dだとどれもあんまり変わらない気がするが

128
名前は開発中のものです。[sage]   投稿日:2016/11/01 22:26:25  ID:+8ot24fl.net(2)
2Dも描画しかないDXライブラリよりもオブジェクト管理出来たりするエンジンに流れている気がする

129
名前は開発中のものです。[sage]   投稿日:2016/11/02 07:20:39  ID:/aW+4m+D.net(6)
全部コードに直書きする形でならなんとか自分の思う通りに作れるようになったとは思うんだけど
さすがに会話イベント一個追加したり、マップに壺一個追加しただけで再コンパイルする必要がある状況って
なんというか我ながらアホだよね

この状況を卒業するには何を勉強したらいいのかアドバイスください
作ってるのは2DRPGで、主にNPCのイベント内容をコードの外に出すにはどうやればいいかで躓いてます

とりあえず思いついてるやり方は
セリフ表示とか効果音を鳴らすとかのイベント処理を担っている関数に番号振って引数の数を紐付けしておいて
イベントの内容を全部、関数の番号、引数の数、引数の数値…って数字だけのデータにして
そのデータを読み込んで、どの関数を呼び出し引数にはどんな数値を入れるかを判断して実行する関数を作り
イベントの内容を全部数値に置き換える方法なんですけど
コメント2件

130
名前は開発中のものです。[sage]   投稿日:2016/11/02 08:13:58  ID:8LrVjVrS.net(2)
>129
自分でも気付いてる通り、基本原則はコードとリソースを分離すること。

テキストファイルの読み込みと解析が出来るなら
単純なシナリオファイル(会話+αくらい)のローダくらいなら比較的簡単。
まあそれ以上に複雑なことをやるなら、素直に
既存のスクリプト言語の組み込み用ライブラリを頼ったほうが良いと思うけどね。


次点としては、ソースファイルの構成を見直して、最低限のビルドでも済むようにすること。

各クラスの書き方、各ファイルの依存関係なんかを整頓することで、
ちょっと修正したくらいなら、長時間のビルドを要さなくなる。

131
名前は開発中のものです。[sage]   投稿日:2016/11/02 13:45:37  ID:/aW+4m+D.net(6)
大体の方向性はこんな感じでいいんだということであれば進めていきたいんですが
躊躇している理由が2つあります

基本的に作り始める時に
クラスとかポインタとかよくわかんないけどとりあえずやってみるべ!と始めたので
配列と構造体だけで設計されてて、実は今でもクラスのことはよくわかっていません
だけどキー入力を把握すことと、変数の操作と、画像と音を自分の望む形で望むタイミングに表示再生出来るなら
自分の作りたいゲームは作ることが出来るはずだ!という考えの下で強引に作り続け
変数の値に合わせて画像や音の状態を制御する関数を作って、それを毎フレームScreenFlipの前に呼び出している
なんていう作りになってしまってます

キャラクターに歩行アニメーションや特殊なポーズをとらせたりするのも
BGMを変更するのも効果音を鳴らすのも、HPMPの増減やアイテムの入手なども
picture[ kyaraDATA[kyaraid].pictureID ].pattern=8;
SEplayflag[seID]=1;    BGMID=BattleBGMID; とか
kyaraHP[kyaraid]+=1000;
itemstorage[itemid]++; とか
ほとんどこういう形でイベントを組み立ててるんですよね……
ちなみにこの変数全部グローバル変数です

この単純な変数操作を外に出のに、変数全部に番号振ってやる以外に方法が思いつかず
その数が数だけにちょっと躊躇っているのです
それに
if(itemstorage[itemid]<99){
itemstorage[itemid]++;
takarabakoOpenFlag[takaraID]=1;
}else{
JISAKU_serihu(1,"これ以上持てない",0);//最初の引数がしゃべるキャラ、最後のは吹き出しの形のタイプ指定
}
みたいに作ってるイベントの条件分岐の部分の外部への出力方法が思いつかないっていう問題点もあります

なんかこう、こんな低レベルな人間にもできる上手いやり方ありませんかね?
コメント2件

132
名前は開発中のものです。[sage]   投稿日:2016/11/02 15:10:54  ID:C/+BZRXz.net(4)
2chは行頭の半角スペースやタブは無視する

133
名前は開発中のものです。[sage]   投稿日:2016/11/02 15:11:48  ID:C/+BZRXz.net(4)
途中で書き込んでしまったけど、そういうわけでコード書くときは全角スペース使って見やすく書いて

134
名前は開発中のものです。[sage]   投稿日:2016/11/02 15:50:25  ID:/aW+4m+D.net(6)
if(itemstorage[itemid]<99){
  itemstorage[itemid]++;
  takarabakoOpenFlag[takaraID]=1;
}else{
  JISAKU_serihu(1,"これ以上持てない",0);//最初の引数がしゃべるキャラ、最後のは吹き出しの形のタイプ指定
}
複数行にまたがってる部分はここだけです
後は本当に変数に代入してるだけというか…

135
名前は開発中のものです。[sage]   投稿日:2016/11/02 15:53:23  ID:22j5AZ4g.net(2)
>131
データにしやすいパターンやお約束のイベントだけをデータベース化して
特殊処理はそのままハードコートでいいんじゃねぇの
「これをデータ化したら本当に効率化されるのだろうか」と考えて
非効率になりそうだったらハードコートのまま
そんなことよりもっとプレイヤーから見て喜んでもらえることに意識を集中したほうがいい

136
名前は開発中のものです。[sage]   投稿日:2016/11/02 17:31:46  ID:mreiywNQ.net(4)
&#160;あ
この板Unicode参照出来なかった?

137
名前は開発中のものです。[sage]   投稿日:2016/11/02 17:32:02  ID:mreiywNQ.net(4)
無理か
VIPなら出来るのに

138
名前は開発中のものです。[sage]   投稿日:2016/11/09 13:59:08  ID:DtsDG8yY.net(2)
3Dゲームでマウスをクリックした位置にある3Dモデルをできるだけ高速に取得したいのですが、
何かいい方法はありますか?
コリジョン(衝突判定)関数がありますが、当たり判定用のメッシュを用意しないといけないようなので
ちょっと手間がかかりすぎるのでできればもっと手軽な別の方法がいいですが
コメント2件

139
名前は開発中のものです。[sage]   投稿日:2016/11/10 02:38:50  ID:woNsYOXh.net(2)
他に方法無いやろ

140
名前は開発中のものです。[]   投稿日:2016/11/22 19:00:44  ID:4Lu6ZO/B.net(2)
ちょっとウンコしてくる

141
名前は開発中のものです。[sage]   投稿日:2016/11/22 19:35:51  ID:amdDwmR+.net(4)
Convert Mouse Location To World Spaceでライントレースしか分からない
コメント2件

142
名前は開発中のものです。[sage]   投稿日:2016/11/22 19:38:26  ID:amdDwmR+.net(4)
>141
ue4スレと間違った

143
名前は開発中のものです。[]   投稿日:2016/12/10 02:51:28  ID:H338C5QI.net(2)
しまった!お尻ふいてなかった

144
名前は開発中のものです。[sage]   投稿日:2016/12/10 21:12:58  ID:ijDtE922.net(4)
>138
画面描画には直接利用しないテクスチャに取得対象モデルをレンダリングしておいて判定するとか

145
名前は開発中のものです。[sage]   投稿日:2016/12/10 21:14:24  ID:ijDtE922.net(4)
とおもったら1月前かよ

146
名前は開発中のものです。[sage]   投稿日:2016/12/18 01:11:06  ID:w4mjhhpa.net(14)
初歩的なことですが、
画像を描画する際の関数の仕様について迷っています

例えば、描画系の関数をできるだけ少なくして、内部変数によってDXライブラリの描画関数を呼び分けるのがいいのか、
あるいは、描画系の関数を目的別に用意して、画面側で使い分けるのがいいか

フェードインの機能の場合、
前者なら「setModeFadeInの後、drawする」
後者なら、「drawとfadeInをそもそも別関数にする」

個人的には前者が正解のような気がしているのですが、
そもそも発想自体が間違っているのでしょうか?

御存知の方いれば、ご教授頂けると嬉しいです
コメント2件

147
名前は開発中のものです。[sage]   投稿日:2016/12/18 17:01:06  ID:g4K5bJ5s.net(4)
関数の仕様と言うよりは、抽象度とか設計とかの話なのかな?

なんとなくは分かるけど誤解してるかもしれないんで
数行程度のサンプルソースを書いてくれると嬉しい

148
名前は開発中のものです。[sage]   投稿日:2016/12/18 17:12:32  ID:GrYJvN1j.net(4)
個人的には後者の方が好き
状態が多いとバグの原因になる
コメント2件

149
名前は開発中のものです。[sage]   投稿日:2016/12/18 18:47:26  ID:w4mjhhpa.net(14)
>> 147
たしかに、「抽象度とか設計」の質問と言った方が適切かもしれません。失礼しました
具体的にいえば、以下のイメージです

■パターン1
if (ボタンが押されたら) {
画像A.setFadeIn(引数に透過速度などの更新情報);
}

画像A.draw();(透明度の加減処理。 また透過度が100以外なら、DXライブラリのSetDrawBlendModeを使うかを判定。フェードインが終わったら、内部変数のフラグを立てる)

if (画像A.IsFadeInComplete()) {
// フェードイン終わった!
}
コメント2件

150
名前は開発中のものです。[sage]   投稿日:2016/12/18 18:48:30  ID:w4mjhhpa.net(14)
■パターン2
if (ボタンが押されたら) {
グローバル変数B = true;
}

if (グローバル変数B) {
画像A.drawFadeIn(引数に透過速度などの更新情報。毎フレーム同じ情報を渡すのが違和感);

if (画像A.IsFadeInComplete()) {
// フェードイン終わった!
}

} else {
画像A.draw();
}

最初はパターン2でやっていたのですが、これだと例えば「回転とフェードインとかが同時にできない?」と思って、パターン1に変えました
すると、今後はフェードインの更新情報を画像Aに持たせたためか、あるいは、draw関数内の条件分岐が増えたせいか、処理が重くなってしまいました
この程度で重くなるのかも疑問ですが、そもそも両パターンともNGなのではと思い始めた次第です
ゲーム系プログラミングのお約束が分かってないのが、一番の原因ですが……

>148
ご教授ありがとうございます。
何がバグの原因になるとか全然分からないので、大変参考になりました

151
名前は開発中のものです。[sage]   投稿日:2016/12/18 18:53:42  ID:w4mjhhpa.net(14)
132 133 の書き込みを読むべきでした すみません……

■パターン2
if (ボタンが押されたら) {
  グローバル変数B = true;
}

if (グローバル変数B) {
  画像A.drawFadeIn(引数に透過速度などの更新情報。毎フレーム同じ情報を渡すのが違和感);

  if (画像A.IsFadeInComplete()) {
    // フェードイン終わった!
  }

} else {
  画像A.draw();
}

152
名前は開発中のものです。[sage]   投稿日:2016/12/18 19:39:00  ID:g4K5bJ5s.net(4)
グローバル変数を使うかどうかとか
複数の状態を同時に実行できない問題をどうするかとかは別として
自分なら2の方向かなあ
コメント2件

153
名前は開発中のものです。[sage]   投稿日:2016/12/18 20:00:49  ID:oO1EoBtD.net(8)
>146,>149-151
細かい点ですが、「フェードイン」とは、画像Aが透明な状態から徐々に濃く(明るく)なっていく処理をさしているのですか?
ボタンを押さないとフェードイン処理が始まらないみたいなんですが、
そもそもボタンを押してないと、画像A.draw()で何を描画してるんですか?

また画像A.IsFadeInComplete()が真になると、何が起こるんですか?
この部分は問題を説明する上で、さんぷるにふくめるひつようがあるのですか?

またなぜ151のパターン2で、わざわざグローバル変数Bをサンプルに含めているのがよくわかりません
サンプルとしては、
if (ボタンが押されたら) {
  画像A.drawFadeIn(引数に透過速度などの更新情報。毎フレーム同じ情報を渡すのが違和感);
   :
でいいんじゃないですか

仕様がいまいちイメージできません
コメント2件

154
名前は開発中のものです。[sage]   投稿日:2016/12/18 20:04:49  ID:GrYJvN1j.net(4)
あーでもグローバルじゃなくてブラシクラス作ればいいかも

155
名前は開発中のものです。[sage]   投稿日:2016/12/18 20:08:44  ID:oO1EoBtD.net(8)
質問の意図は

■パターン1
画像A.draw(ボタンが押されたか、引数に透過速度などの更新情報);//毎フレーム同じ情報を渡すのが違和感

■パターン2
f (ボタンが押されたら) {
  画像A.drawFadeIn(引数に透過速度などの更新情報);
} else {
  画像A.draw();
}

でどっち?
みたいな話かと思ったけど、ちがうのか・・・
コメント6件

156
名前は開発中のものです。[sage]   投稿日:2016/12/18 20:41:41  ID:w4mjhhpa.net(14)
>153
ごめんなさい たしかにサンプルが不適切です
この場合だとフェードインではなく、フェードアウトになります
ボタン押したら、画像が消えていくみたいな
質問の意図に関しては 155で指摘されている通りです

>155
ありがとうございます
グローバルではなく、staticなローカル変数、あるいはブラシクラスを検討してみます

ブラシクラスとなると、画像インスタンスを受け取って、内部情報を更新するという意味かな

157
名前は開発中のものです。[sage]   投稿日:2016/12/18 21:01:52  ID:w4mjhhpa.net(14)
思った以上に反応があって、ちょっと焦ってました
156の「>155」は、「>152」が正しい

154の「グローバル」の意味が把握できていないけど、たぶんグローバル変数Bのことじゃないよね
156の自分の書き込みは無茶苦茶。グローバル変数Bとブラシクラスは関係ない

とりあえず方向性は見えてきたので、ありがとうございます

158
名前は開発中のものです。[sage]   投稿日:2016/12/18 21:08:52  ID:oO1EoBtD.net(8)
流れがつかめませんが、解決したんですか

ちなみに>155でいうと、自分はパターン2派。可読性が良くなると思うから。
画像A.のdrawFadeIn()とdraw()で重複するブロックが肥大化してきたら、その重複部分をinline関数に切り出してる

しかし・・・
確かに可読性が悪いとストレスの原因になるが、
可読性を確保する労力が新たなストレスと生むというジレンマ・・・
コメント2件

159
名前は開発中のものです。[sage]   投稿日:2016/12/18 22:50:19  ID:w4mjhhpa.net(14)
>158
混乱させてしまったようで、申し訳ないです
155の意図をやっと把握しました(訂正に訂正を重ねてホンマ……)

パターン1は、どこかでフェードインの命令要求を登録した後、draw関数を呼び出します
draw関数内では、透過度の変更要求の確認、透過度の更新、および、DXライブラリ「SetDrawBlendMode」の呼び出しを行います
透過度の変更要求がない場合は、SetDrawBlendModeを使いません
なので、通常描画もフェードイン描画も一律draw関数を呼びだすことになります

パターン2は drawFadeIn とdraw を別関数にします
フェードインするときは、drawFadeInを呼び出して、引数として透過度の更新情報を渡します

結論としては、皆さん「パターン2がマシ」と仰っているので、その路線で進めようと思います
描画処理専門のブラシクラスも含めて、検討してみます

可読性に関しては、最近、可読性を確保するためのストレスに負け始めてます
重要なのは重々承知ですが、やはり面倒……
趣味なはずなのに、仕事と同様のストレスを感じる
コメント2件

160
名前は開発中のものです。[sage]   投稿日:2016/12/18 23:01:17  ID:oO1EoBtD.net(8)
>159
フェードアウトとフェードインの区別が困難になるほど、なにやら複雑な夢(野望、殺意)を秘めているみたいですね
お手柔らかにお願いします(笑)

ロベールさんのサイトによると、
inline関数は必ずしもinline展開されないみたいだけど、
誰か環境ごとに厳密に検証した人いるのかな?
自分はVC++の判断を信じてる!

161
名前は開発中のものです。[sage]   投稿日:2016/12/19 00:31:54  ID:HwJJ4Rji.net(2)
例えば「マリオが死ぬと画面がフェードアウトして画面が切り替わる」
…という処理があるとして


■パターン1
マリオの死亡処理のところに
具体的な切替演出の設定(この場合はフェードアウト)を書くことになる。

■パターン2
マリオ死亡時にやることは
画面切替フラグを立てるだけで、死亡処理に集中することが出来る。


画面切替の演出には、画面がどんどん暗くなる「フェードアウト」だけでなく、
真っ白になったり(ホワイトアウト)、ワイプしたり色んな演出パターンが考えられる。
実際にやるかどうかは別としてね。

そうなると、画面切替処理は独立させておいたほうが取り回しが良くなるのではないか?
というのがオイラの考える2のメリットかな。
コメント2件

162
名前は開発中のものです。[sage]   投稿日:2016/12/19 16:22:26  ID:9RjupL+U.net(2)
状態に対して××モードと名前をつけて
上手くハマるならそれを使えばいいよ
コメント2件

163
名前は開発中のものです。[sage]   投稿日:2016/12/19 23:36:24  ID:ABRexmh1.net(2)
>161
わかりやすい例え、ありがとう
まさにそういう事例を想定していたので、とても参考になります

>162
了解です

164
名前は開発中のものです。[sage]   投稿日:2017/01/08 23:39:08  ID:3fqQn8Jq.net(2)
久しぶりにDXライブラリ使ってたんだけど、文字入力して変換しようとするとIMEの変換候補がゲームウィンドウの左下に表示される。
ちなみにGoogleIMEでは左下でMicrosoftIMEは右下。
昔触ったときは文字の入力した文字のすぐそばに表示されてた気がするんだけどWin10(Win8?)から仕様が変わったんだろうか。
ぐぐったらWin8でIMEウィンドウ自体が出ない不具合があってそれは解消されたようなんだが。

165
名前は開発中のものです。[sage]   投稿日:2017/01/13 09:20:03  ID:JxeCTkK7.net(4)
文字入力といえば自作のアクションゲームで名前入力辞めマスタ
よーく考えるとユーザー自身しかしないだろうし

166
名前は開発中のものです。[sage]   投稿日:2017/01/13 09:22:32  ID:JxeCTkK7.net(4)
キーのログをとってmovieみたいに再現できる機能も省略
今なら動画をとろうと思えばキャプチャソフトを使えばよいし

楽になった分、今度こそ完成に近づくと良いけど

167
106[sage]   投稿日:2017/01/17 15:54:13  ID:aj0DNk7d.net(2)
スレに残しておきたいと感じた情報を書いておきます

>106で沸いた疑問を縦800ピクセルの画像で比較検証したところですが
DrawRectGraphで一列ずつ描画するのと
SetDrawAreaで描画できる範囲を一列ずつ変更しながら描画するのでは

比べるのがおこがましいくらい
DrawRectGraphで一列ずつ描画する方が
軽かったという検証結果が出ました
12倍くらいの差がありましたので、10倍以上違うのは確実だと思います

ここまで違うのならどんな環境でもDrawRectGraphの方が良いのは確実なんじゃないかと思います
ラスタースクロールをシェーダ使わずに実装するならDrawRectGraphが良いです

以上、報告終わり
コメント2件

168
名前は開発中のものです。[sage]   投稿日:2017/01/29 19:37:06  ID:rdbqqXVO.net(2)
>167
SetDrawAreaを使うと連続描画が途切れるからね

169
名前は開発中のものです。[sage]   投稿日:2017/01/30 18:28:11  ID:2zIjyMmQ.net(2)
Delayフレーム後にSoundHandleを指定の音量パン周波数で再生する
SoundEffect(int SoundHandle,int VolumePal,int PanPal,int FrequencyPal,int Delay)

こんな関数を作りたいんだけど実装方法が思いつかない
SetSoundCurrentTimeでマイナスの値を設定出来たら簡単なのに

170
名前は開発中のものです。[sage]   投稿日:2017/02/16 01:43:45  ID:vIVM03On.net(2)
マイクから入力される音声のdBを
監視するアプリって作れますか?

171
名前は開発中のものです。[]   投稿日:2017/02/26 02:54:28  ID:NkbyLrdK.net(4)
DX11対応の環境でサンプルプログラムをコンパイルし実行したらDX11で動いていましたが
この.exeをDX11非対応の環境で実行するとDX9などで動くんですか?

手元にDX11非対応の環境が無くて試せないんですが2Dゲーを作る分には特に気にしなくても大丈夫なんでしょうか
コメント2件

172
名前は開発中のものです。[sage]   投稿日:2017/02/26 02:56:31  ID:NkbyLrdK.net(4)
sage忘れ失礼しました

173
名前は開発中のものです。[sage]   投稿日:2017/02/26 04:39:50  ID:cv+wlHl/.net(2)
オリジナルシェーダ使ってなければ問題ないはず

174
名前は開発中のものです。[sage]   投稿日:2017/02/26 11:18:23  ID:SbF7UdV7.net(4)
Android対応のDXライブラリが公開されたようだね
Unityやcocos2dと比べるとメリットがあまりないのがアレだけど
(DX11対応みたいに中途半端になりそうなところがまたね……)

175
名前は開発中のものです。[sage]   投稿日:2017/02/26 11:24:07  ID:SbF7UdV7.net(4)
>171
DX11でつくるのなら
DXライブラリは、DX11の機能のテッセレーションやジオメトリシェーダー
コンピュートシェーダーなど対応していないからあまりオススメしないぞい

176
名前は開発中のものです。[sage]   投稿日:2017/02/26 18:26:14  ID:w1YArNR6.net(2)
android対応dxライブラリマジやがw
ちょっとスマホゲー作りたくなってきた・・・

177
名前は開発中のものです。[sage]   投稿日:2017/02/26 23:50:04  ID:UgWHSXy5.net(2)
ゲームエンジンで実機デバックしてたから
VS2015の実機デバックがそのまま使える
DXライブラリのプログラムも実機でみれて楽しい

178
名前は開発中のものです。[]   投稿日:2017/02/27 17:14:55  ID:HzyfcOK5.net(2)
Android対応まじだったw
前に誰かがcocos2dでやってたの使ってみたんだけど
まともに動かんかったから公式で対応してくれるのはでかい
帰ったら自作ゲームを移植してみよう

179
名前は開発中のものです。[sage]   投稿日:2017/02/27 19:38:03  ID:yzmBThPX.net(2)
個人開発なのにそんなに手広くやって大丈夫なんだろか。
良い人である以上に人が良すぎてサポートで死にますよ。

180
名前は開発中のものです。[sage]   投稿日:2017/02/27 19:49:51  ID:LeUk6F53.net(2)
OSSだしgithubで開発すれば良いのに

181
名前は開発中のものです。[]   投稿日:2017/02/27 19:50:11  ID:hCixZHbE.net(2)
dxライブラリのあり方としての謎が深まる

182
名前は開発中のものです。[sage]   投稿日:2017/02/28 00:19:17  ID:VdUT2lLZ.net(4)
つかVS2015がandroid対応していたことに驚き

183
名前は開発中のものです。[sage]   投稿日:2017/02/28 01:06:31  ID:kAgsABkj.net(4)
今MSはマルチプラットフォームに必死だからね
Win10でBash使えるようにしたりLinuxにVisual Studioのコードエディタを公開したりと

1番驚いたのはThe&#160;Linux&#160;FoundationにMSが入った事だな

184
名前は開発中のものです。[sage]   投稿日:2017/02/28 01:07:15  ID:kAgsABkj.net(4)
ごめんスペースだと思ってコピペしたのが文字化けしてる
The Linux Foundationね

185
名前は開発中のものです。[sage]   投稿日:2017/02/28 01:27:32  ID:VdUT2lLZ.net(4)
試しにやってみたけど最後の実行が出来なかったorz
もう寝る

186
名前は開発中のものです。[sage]   投稿日:2017/02/28 14:20:17  ID:9MuOvNLS.net(2)
Android版をタブレットのC4droidでやってみたけどライブラリの中でエラー吐くみたいだ
大量のエラー吐くからさっぱり分かんないや
"ANative_Activity_onCreate"が" android_native_app_glue.h "と衝突して多重宣言しているとかなんとかから始まってBulletやOgg周りで参照エラーが出てる

187
名前は開発中のものです。[sage]   投稿日:2017/03/05 18:50:00  ID:WYpdMPcL.net(2)
DrawLine関数の挙動がPCごとに違う?なんかサブのノーパソで動かすと下に1ドットずれる
両方Directxのバージョン11以降だからそこ辛味じゃないと思うんだけど…

188
名前は開発中のものです。[sage]   投稿日:2017/03/11 14:58:07  ID:4brvAqUP.net(2)
もう何年も前に、
ハードウェア描画は1ドットずれたりする場合があるだの
3Dのものを画面に映す(2Dに変換する)際に誤差が生じるだの
聞いたことあるけど、流石にそれは関係ないかしらね…

189
名前は開発中のものです。[sage]   投稿日:2017/03/16 07:40:17  ID:06c/uHW3.net(2)
座標の扱いはビデオカードごとに違うからね
古いオンボードだと0.5pxずれたりする

190
名前は開発中のものです。[sage]   投稿日:2017/03/19 15:23:34  ID:85gVo7Ly.net(2)
2dで影作るときってどうすればいいんだ
アルファ乗算の値下げながらDrawLineをずらして何本も描画していくのを思いついたけど絶対糞重くなるでしょ

191
名前は開発中のものです。[sage]   投稿日:2017/03/19 17:46:24  ID:McAdhrov.net(2)
影の形にこだわらなければいいんでないかい

192
名前は開発中のものです。[sage]   投稿日:2017/03/19 17:59:49  ID:iXKgNie2.net(2)
影ってどういう影なのか分からんけど
例えばスプライトのキャラに影つけるならキャラの形の白黒画像用意してDrawModiGraphで乗算合成とかじゃね

193
名前は開発中のものです。[sage]   投稿日:2017/03/20 14:37:04  ID:PJ3OOU/G.net(2)
スプライト底辺に黒い楕円置くだけやろ
それでアクションやマップ作成に支障が出るなら
潔く影なんて捨てる

194
名前は開発中のものです。[sage]   投稿日:2017/04/09 22:25:04  ID:Fu+0leN1.net(4)
マウスの入力についての質問です

マウスのサイドボタンの検出はDXライブラリではできないのでしょうか?
調べてみても、サイドボタンがXButton1とかXButton2と呼ばれていることしか得られませんでした

こう記述すればできるとか、DXライブラリ以外の実装方法があるとかあれば教えてください
よろしくお願いします

195
名前は開発中のものです。[sage]   投稿日:2017/04/09 22:43:19  ID:A8iwvjAh.net(2)
GetMouseInput()じゃダメなの?
コメント4件

196
名前は開発中のものです。[sage]   投稿日:2017/04/09 22:53:28  ID:Fu+0leN1.net(4)
>195
公式リファレンスを見ながらGetMouseInput()の引数を全部試しましたが、どれを使っても検出されませんでした
ブラウザでサイドボタンを使って戻る進むができてるので、自分のサイドボタンが壊れている可能性はないです
コメント2件

197
名前は開発中のものです。[sage]   投稿日:2017/04/09 23:58:01  ID:gIO/ILx4.net(2)
>196
http://dxlib.o.oo7.jp/function/dxfunc_input.html#R5N8
ここ見る限り、GetMouseInputで値取れないってことは
逆にマウスのサイドボタンがキーボードのフックで対処してるタイプかもしれない。
例えば、キーボードのBackSpaceで「戻る」、Shift+BackSpaceで「進む」を表現してるとか。

http://dxlib.o.oo7.jp/cgi/patiobbs/patio.cgi?mode=past&;no=2247
後は関数自体の使い方に問題があるかもしれないので
ここで管理人さんが掲示してる最初のソースコードを試してみるとか。
情報が古いので今も使えるかわからないけど。
コメント4件

198
194です[sage]   投稿日:2017/04/10 00:31:27  ID:Yp/MHnmL.net(2)
>197
ふたつのURLを見て試してみましたが検出されませんでした
さらにCheckHitKeyAll()も試してみましたが、これでもサイドボタンは検出されませんでした

ふたつ目のURLのように、もしかしたら実装されていない機能なのかもしれないです
DXライブラリ製作者さんの掲示板に質問・お願いしてみることにします

>195 >197 さん、どうもありがとうございました

199
194です[sage]   投稿日:2017/04/11 01:56:20  ID:upA/YOkc.net(2)
サイドボタンの検出の件ですが、無事解決しました
自分と同じようなことで悩んでいる/いた方のために書き残しておきます

簡単に言うと、サイドボタンの検出をするにはDXライブラリをバージョンアップする必要があるようです
以下のやり取りを見ていただければ、詳しいことが得られると思います

http://dxlib.o.oo7.jp/cgi/patiobbs/patio.cgi?mode=view&;no=4080

今回の質問に関わってくださった皆様、改めてありがとうございました

200
名前は開発中のものです。[sage]   投稿日:2017/04/12 01:50:35  ID:TuryebQE.net(4)
白地に(アンチエイリアスかかった)黒のアイコンを表示してるんですが
これの白地を別の色にすると白地前提のアンチエイリアスが汚くなってしまいます。
白地に黒アイコンのものにアルファブレンドをかけると今度は黒が薄く見えなくなってしまう。。
Dxライブラリの知識ではないかもしれませんが、これを解決する手法のヒントなどありますでしょうか?

201
名前は開発中のものです。[sage]   投稿日:2017/04/12 02:02:34  ID:TuryebQE.net(4)
ごめんなさい書いた直後に自己解決してしまった
やっぱりよく調べて書くべきですね・・・

202
名前は開発中のものです。[sage]   投稿日:2017/04/14 21:46:05  ID:bZxpbzr7.net(4)
DXライブラリに関連してるかどうかわかりませんが
わからないことを質問してみます。

ファイナルファンタジー14(以下、FF14と略)などのプロが開発したゲームを拝見するとロード時間が短いように感じます
例えばDXライブラリを使って約14,000KBぐらいのMP3ファイルをロードしてメモリに読み込むようにコードを書くと
MP3ファイルのロードが完了するまでにコンマ数秒のロード時間が発生します

ですが、FF14のタイトル画面でしばらく放置するとプロローグムービーが開始されるわけですが、
内容を見る限り明らかに容量の多いムービーファイルをロードして再生してるように見えるのですが、
実際、FF14のゲームを起動してタイトル画面に移行するまでの時間は僅かです

私からの質問は、大容量のファイルをロードする場合に
ロード時間を短く済ませるための技術です
DXライブラリでゲーム開発をしてるのでDXライブラリを使用してのお知恵を拝借したい

203
名前は開発中のものです。[sage]   投稿日:2017/04/14 22:21:37  ID:7sRUbSV9.net(4)
効果音ではなく曲を全部メモリにロードするのは間違ってる
ファイルサイズの大きい曲や動画は読み込みながら再生するのが基本
そうじゃないと100GBの動画とかメモリに入りきらないようなものは再生できない

204
名前は開発中のものです。[sage]   投稿日:2017/04/14 22:38:34  ID:bZxpbzr7.net(4)
なるほど、必ずしもメモリにロードしてから再生しなくてもいいという考え方なのか
直接HDDからファイルをメモリーにロードしながら再生(ストリーミング再生)するわけか、
俺は大容量のファイルを分割でメモリに読み込んで
1ループのロード時間を短くする方向で考えていた

205
名前は開発中のものです。[sage]   投稿日:2017/04/14 23:52:44  ID:7sRUbSV9.net(4)
分かりやすく例えると、oggとかmp4なんかはzipで圧縮したような形式だから
再生するために元のwavに解凍すると10倍〜100倍になる
メモリにロードするってことは、この巨大化したのを入れるってことだから
効果音のような小さなものでない限りは避けるべき

206
名前は開発中のものです。[sage]   投稿日:2017/04/15 01:19:09  ID:RtlOPePd.net(4)
ありがとう
おかげで疑問が解消されました

207
名前は開発中のものです。[sage]   投稿日:2017/04/15 03:44:15  ID:3FEYykSP.net(4)
あとはシングルスレッドの場合はどうしてもロード時に固まってしまうだろうから、マルチスレッドでロードを行うようにするのはどうだろうか?

208
名前は開発中のものです。[sage]   投稿日:2017/04/15 04:40:43  ID:RtlOPePd.net(4)
マルチスレッドということはC++11を扱うということですね
Core i7を乗せてるのでCore UPUに対応したゲーム開発も興味はあるが
技術的に敷居が少し高いので今はまだいいかな
最新のC++コンパイラも必要になるし
ゲームのプレイヤーがCore i7 や Core i5のCPUを乗せてないと威力は発揮されない

209
名前は開発中のものです。[age]   投稿日:2017/04/15 09:19:30  ID:+pklgBp/.net(4)
短い場合(メモリー上にwave展開しない)
SetCreateSoundDataType( DX_SOUNDDATATYPE_MEMPRESS );
長い場合(ストリーミング再生)
SetCreateSoundDataType( DX_SOUNDDATATYPE_FILE );
どちらか書く

210
名前は開発中のものです。[sage]   投稿日:2017/04/15 09:44:18  ID:+pklgBp/.net(4)
http://jgame.blog.fc2.com/
あんたこのブログの人やろ頑張りや

211
名前は開発中のものです。[sage]   投稿日:2017/04/15 09:52:16  ID:PBMOYWDr.net(2)
ちなみに画像や音声のマルチスレッド読み込みはDXライブラリ標準機能で
SetUseAsyncLoadFlag(TRUE)使えば簡単よ

212
名前は開発中のものです。[sage]   投稿日:2017/04/15 11:40:04  ID:3FEYykSP.net(4)
C++11とか使ってませんが、ロード画面作るときにマルチスレッドを使いました。
あくまでロード時に凍るのを防ぐために使用するのでCPUがどうとかは無いですよ。
process.hをインクルードしてResumeThreadさせるだけで実装できます。

213
名前は開発中のものです。[sage]   投稿日:2017/04/15 13:07:47  ID:poy2AG7G.net(2)
何故だろう、急に挙動が変わった。
sizeが0を返すからファイルが見付からない訳じゃないと思うのだけど。

void* readbin( char *filename)
{
int size ,rsize ,h;
char *ptr;

if ( size = FileRead_size( filename ) == -1 ) errmsg( NOTREAD ,filename );
ptr = (char*)malloc(size+1);
if ( h = FileRead_open( filename ) == 0 ) errmsg( NOTOPEN ,filename );
rsize=FileRead_read(ptr ,size ,h);
printfDx( "%s : %d/%d\n" ,filename ,size ,rsize );

FileRead_close( h);
return ptr;
}
コメント2件

214
名前は開発中のものです。[sage]   投稿日:2017/04/15 13:25:19  ID:JeCVIRaX.net(2)
> ptr = (char*)malloc(size+1);

この+1はなに?
本題とは関係ないけど
コメント2件

215
名前は開発中のものです。[sage]   投稿日:2017/04/15 14:44:24  ID:qT8WsIhy.net(2)
DXLib 知らずに覗いてるだけでどう挙動が変わったかわからんので >213 の疑問には答えられないが、
>214
おそらくファイルのく中身は表示などに使う文字列だという前提だと、
文字列の終端は NULL で止める必要があるのでその 1byte 分を余計に確保している。
(今どきのコンパイラは malloc での確保と同時に \0 埋めをしてくれるのかもしれないけどちょっと危ないな。)
readbin() という名前からして文字列と言っても中身はバイト列と推測できるので、
ファイルの中身には終端 NULL を入れずに記録しているんだろう。

216
213[sage]   投稿日:2017/04/15 15:14:07  ID:YQ+vHcvV.net(2)
+1は苦し紛れにあーだこーだいじる過程でダメ元で付加してみたのでした。
末端に不定の1バイトが付加されるので無駄な容量食いではありますが、危険という認識はありませんでした。
早急に削除します。
そして、自己解決しました。if文の連結順序を誤解していました。何故今まで動いていたんだ・・・。
if ( size = FileRead_size( filename ) == -1 ) errmsg( NOTREAD ,filename );
if ( h = FileRead_open( filename ) == 0 ) errmsg( NOTOPEN ,filename );
↑これは↓こうですね。
if ( (size = FileRead_size( filename )) == -1 ) errmsg( NOTREAD ,filename );
if ( (h = FileRead_open( filename )) == 0 ) errmsg( NOTOPEN ,filename );
お騒がせしました。

217
名前は開発中のものです。[sage]   投稿日:2017/04/18 20:45:54  ID:bJnkmQcY.net(2)
ホラーだ

218
名前は開発中のものです。[sage]   投稿日:2017/04/29 01:27:41  ID:/YvMYhCO.net(4)
DXライブラリはgifアニメーションを再生できないのでしょうか?
DXライブラリ以外ならgifアニメ再生できたりするのでしょうか?

「こう記述すればできる」など教えてください
コメント2件

219
名前は開発中のものです。[sage]   投稿日:2017/04/29 06:09:30  ID:SAAy66wJ.net(2)
gifをそのまま読み込んで表示はできなかったはず
連番画像に変換するか、もしくは動画にするかだな
コメント2件

220
名前は開発中のものです。[sage]   投稿日:2017/04/29 16:48:35  ID:/YvMYhCO.net(4)
>219

割とむつかしい事しなきゃ動画像は表現できないんですね・・・
爆発エフェクトとか魔法エフェクトとかgifで表現したかったんですが、少し億劫になってしまいました

回答ありがとうございました

221
名前は開発中のものです。[sage]   投稿日:2017/04/29 17:59:31  ID:xrI1QiYS.net(2)
LoadDivGraph使えば連番画像が配列に入るから簡単やで
っていうか簡単なエフェクトなら回転拡大縮小やブレンドパラメータの変更で表現できるんじゃない?

222
名前は開発中のものです。[sage]   投稿日:2017/04/29 18:40:06  ID:EkJNcx6r.net(2)
>218
一応C#版ならサンプル転がってるね
規制でurl貼れないけど検索すればすぐ見つかる
でも221が言うようにDivGraph系使った方が楽だと思う

223
名前は開発中のものです。[sage]   投稿日:2017/05/05 10:05:26
なるほど初期化とかのタイミングで一旦展開するのがエンジン的には普通なのか

224
名前は開発中のものです。[sage]   投稿日:2017/05/05 15:40:34
最初から専用形式化アニメGifくらいにしか出力できないツールとかでもない限り、
手間は大して変わらんだろうしな

225
名前は開発中のものです。[sage]   投稿日:2017/05/07 15:21:12
結局誰かが何処かで一所懸命動かしてるわけだしな

226
名前は開発中のものです。[sage]   投稿日:2017/05/09 08:34:24
アニメーション用の画像を一枚にまとめた後ってLoadDivGraphでもDrawRectGraphでもアニメーションにできるけど
どっちの方が軽いとかってあるのかな

227
名前は開発中のものです。[sage]   投稿日:2017/05/09 09:38:53
内部的にはほぼ同じ処理だと思う
どちらも一度のドローコールでまとめて描画するから速度はほとんど変わらないはず

228
名前は開発中のものです。[]   投稿日:2017/05/10 11:42:59
FOR-NEXT 10億回ループまとめw追加&補正その4w

DarkGDK(Core i7 4770K)..     1.7秒
DarkBASIC(Core i7 4770K).     1.8秒
JavaScript(CeleronG1820)     2.3秒
DarkGDK(CeleronG1820)..     2.3秒
DarkBASIC(CeleronG1820).    2.5秒
AGK ver1.0(CeleronG1820)..   33.0秒
H.S.P. 3.4(CeleronG1820).     126.0秒 (*1) *New!
JavaScript(PS4Slim).        130.0秒 (*2)
EZ-BASIC(PlayStation2).    227.0秒 (*3)
99BASIC(Core i7 4770K).    330.0秒
99BASIC(CeleronG1820).    463.0秒
プチコン3号(new 3DS LL).    673.0秒
プチコンmkII(new 3DS LL)  20300.0秒 (*4)
プチコンmkII(new 3DS LL)  20500.0秒 (*5)

(*1) H.S.P.、簡易インタープリター言語
(*2) CPUリソース割り当てが極端に少ないか、サブCPU担当と予想される
(*3) SCPH-90000、BASIC STUDIO パワフルゲーム工房、ループ分割
(*4) スケーリングあり、ループ回数を100分の1にして、計測結果に100を掛けたもの、ループ分割
(*5) スケーリングなし、ループ回数を100分の1にして、計測結果に100を掛けたもの、ループ分割

229
名前は開発中のものです。[sage]   投稿日:2017/05/10 15:05:35
最適化ですっ飛ばしてる可能性は?

230
名前は開発中のものです。[sage]   投稿日:2017/05/12 23:43:37
どうやら周回遅れの嵐がまた戻ってきたようだな

231
名前は開発中のものです。[sage]   投稿日:2016/01/05 23:44:29  ID:fkNSYSkc.net(4)
Cを習得した程度のスキルでも、ゲームのグラフィックを比較的容易に描画する事のできる、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

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

【関連スレ】
C/C++ゲーム製作総合スレッド Part7 [転載禁止](c)2ch.net
C/C++ゲーム製作総合スレッド Part7
ゲームプログラムなら俺に聞け32(c)2ch.net
ゲームプログラムなら俺に聞け32 /プログラム板

●DXライブラリではなくDirectXの質問ならこっちへ
【C++】 DirectX初心者質問スレ Part39 【C】 [転載禁止](c)2ch.net
【C++】 DirectX初心者質問スレ Part39 【C】 /プログラム板

232
名前は開発中のものです。[sage]   投稿日:2016/01/05 23:46:42  ID:fkNSYSkc.net(4)

233
名前は開発中のものです。[sage]   投稿日:2016/01/06 02:07:33  ID:bl/881x8.net(2)
埋め

234
名前は開発中のものです。[]   投稿日:2016/01/06 04:35:21  ID:vkTt7kSt.net(2)
DirectXを利用したゲーム開発のためのライブラリ「DXライブラリ」に脆弱性 - 窓の杜
http://www.forest.impress.co.jp/docs/news/20160105_737584.html

235
名前は開発中のものです。[sage]   投稿日:2016/01/06 09:50:52  ID:uUHWeNkD.net(2)
すれたておつ〜

236
名前は開発中のものです。[sage]   投稿日:2016/01/06 13:49:00  ID:vToozi2l.net(2)
即死回避
コメント1件

237
名前は開発中のものです。[sage]   投稿日:2016/01/06 21:48:53  ID:FPsnS4s5.net(2)
リスポーンキル回避

238
名前は開発中のものです。[sage]   投稿日:2016/01/06 22:07:03  ID:SNpTpPa+.net(4)
char binadata[10000000]ってやったらエラーが出た
char binadata[9000000]だったら大丈夫だった
char binadata[10000000]でもグローバル変数だったら大丈夫だった

なんでグローバル変数だと大丈夫なん?
使うメモリの容量がローカル変数とグローバル変数では違うの?
コメント1件

239
名前は開発中のものです。[sage]   投稿日:2016/01/06 22:27:40  ID:D/YIuxFU.net(2)
ローカルメモリはスタックメモリに配置されるからって
大学でならわなかったかい?

240
名前は開発中のものです。[sage]   投稿日:2016/01/06 23:21:49  ID:SNpTpPa+.net(4)
はい、ならいませんでした

241
名前は開発中のものです。[sage]   投稿日:2016/01/07 10:01:18  ID:Fegao3sZ.net(2)
エラーってstack overflow?
初歩的すぎる

242
名前は開発中のものです。[sage]   投稿日:2016/01/12 13:01:35  ID:edPYChEu.net(2)
記憶域でのスタックと静的領域とヒープの3つを理解し
適切に使い分けられなければ
蹴り入れられても文句言えない

C言語入門からやり直すべきよ
コメント1件

243
名前は開発中のものです。[sage]   投稿日:2016/01/24 15:52:14  ID:YuKcV9Os.net(2)
やり直すというより、>8は現在進行形のC入門者なんだと思う
コメント3件

244
名前は開発中のものです。[sage]   投稿日:2016/01/25 17:48:18  ID:sajU6FWk.net(4)
ttfファイルを読み込んで使ってるんだけど、あらかじめ同じフォントがインストールされているとサイズがおかしくなる
どうにかならない?

245
名前は開発中のものです。[sage]   投稿日:2016/01/25 20:30:11  ID:sajU6FWk.net(4)
LoadFontDataToHandle関数で解決しました

246
名前は開発中のものです。[sage]   投稿日:2016/02/18 16:31:02  ID:hWOqPyim.net(2)
今更だけどこれって
「ディーエックスライブラリ」?
「デラックスライブラリ」?
前者で読んでるけどどっちなんだ

247
名前は開発中のものです。[sage]   投稿日:2016/02/18 18:15:07  ID:CD7aF1NM.net(2)
もともと DirectX のDXだからディーエックスでいいんじゃない

248
名前は開発中のものです。[sage]   投稿日:2016/02/18 19:31:57  ID:qySKf0j4.net(4)
ここで聞いていいのか分かりませんが

14歳からはじめるC言語わくわくゲームプログラミング教室 Visual Studio 2013編のP105に

 もし複数のキーが同時に押された場合、GetJoypadInputState関数は押されたキーを表す定
数を合計した数値を返します。たとえば←と↑が同時に押された場合、PAD_INPUT_LEFT(実
体は整数の2)とPAD_INPUT_UP(整数の8)の合計(つまり 10 )が返さます。キーを表す定数
には2進数で表すとビットが重ならない数値が割り当てられているので、合計してもキーを表す
ビットの状態は変わりません。

←↑の同時押し ↑→の同時押し
0000 0010(2) 0000 1000(8)
+0000 1000(8) +0000 0100(4)
──────── ────────
0000 1010(10) 0000 1100(12) 

とあるんですが、テンキーって
789
456
123
だから
↑8
←4  →6  
↓2
になって、←↑の同時押し:4+8=12、 ↑→の同時押し:8+6=14だと思うんですが、DXライブラリでは
↑8
←2  →4  
↓6
になるんでしょうか?

249
名前は開発中のものです。[sage]   投稿日:2016/02/18 20:15:38  ID:pY1Vnnd1.net(2)
>18
多分その書籍は「同時押ししても別々に認識できる」
というのを示したかっただけな感じがするので
実際の割当がどうなっているのかはあまり気にしなくていいと思います

あと、テンキーの数字と割当整数がそのまま対応しているわけではないです

250
名前は開発中のものです。[sage]   投稿日:2016/02/18 21:30:32  ID:w6GurFPy.net(2)
その数字のままだったら、2+4と6単体と区別つかないだろう
2進数慣れといたほうがいいよ

251
名前は開発中のものです。[sage]   投稿日:2016/02/18 22:26:00  ID:qySKf0j4.net(4)
皆さんありがとう
この部分の前後読んでもさっぱり分からないので
これ以上気にしないで先に進むことにします
この先具体例が出て来るかも知れませんしね

252
名前は開発中のものです。[sage]   投稿日:2016/02/19 07:22:42  ID:g+RjjMNz.net(2)
ビット演算調べて。
一桁目が1 0001 1x1=1
二桁目が1 0010 1x2+0=2
三桁目が1 0100 1x2x2+0x2+0=4
四桁目が1 1000 1x2x2x2+0x2x2+0x2+0=8
2になると一桁上がるから2進数。
普通の10進数も、例えば、1234は
=1x10x10x10+2x10x10+3x10+4

一つのキーが押されているか押されていないかを表現するのには0と1で充分。
つまりキーが4つなら0000から1111で表現できる。
キーの組み合わせはビットのor演算になる。
2進数だから足し算と結果は同じになるけど。

逆に一つのキーの状態を調べるのはandで。

253
名前は開発中のものです。[sage]   投稿日:2016/02/19 17:10:56  ID:yVHYDmTr.net(2)
こうして見てると、ビット演算を他人に教えるって結構大変そうだな

254
名前は開発中のものです。[sage]   投稿日:2016/02/19 20:45:32  ID:9rsuXZwb.net(2)
ビット演算の話なのか?

俺はてっきり
if( GetJoypadInputState( DX_INPUT_PAD1 ) & PAD_INPUT_UP )
みたいに識別子と論理積を使って判定するのではなく

if( GetJoypadInputState( DX_INPUT_PAD1 ) == 8 )
みたいにその数字で直接入力判定してるから、テンキーの割り当て整数を知りたい
っていう話をしているのかと思ったんだけど

255
名前は開発中のものです。[sage]   投稿日:2016/02/20 10:04:02  ID:EkX5eIPD.net(2)
わざわざそんなことするメリットなくね?

256
名前は開発中のものです。[sage]   投稿日:2016/02/21 02:51:09  ID:M/Be+VbG.net(16)
とりあえず、入力状態を調べる関数の返り値を2進表記文字列と10進表記文字列で対にして画面左上に表示するだけの簡単なアプリ作っても良いかと思う。

と、ここで気になって調べたら、2進文字列への変換は
Cはitoa←VCでしか使えない? 今回は使えるかな
C++はstd::bitset

簡単なはずなのに、簡単でない気がしてきた。
用途限定なら自作した方が楽な(学べる)気もする。
コメント2件

257
名前は開発中のものです。[sage]   投稿日:2016/02/21 04:47:37  ID:M/Be+VbG.net(16)
>if( GetJoypadInputState( DX_INPUT_PAD1 ) & PAD_INPUT_UP )

&(and)だから特定の一つのキーが、押されているかのチェック
押されていなければ0、つまり偽 FALSEになりif以降は実行されない。
押されていれば0以外 真となりifは実行される。
if ((GetJoypadInputState(DX_INPUT_PAD1)&PAD_INPUT_UP) !=0)
これが省略されているのが一行目。
0であるならば、0以外であるならば、機械は基本たったこれ2つの判断で分岐する。!=0は0でないなら、の意味。not イコール 0

while(1)とかも同じ考え方。これは条件が常に真(偽(0)ではない)なので無限ループになる。
for(初期化(が多い);継続の条件;条件が真なら行うこと)
いずれ条件が偽になるからこそ使えるということ。

>if( GetJoypadInputState( DX_INPUT_PAD1 ) == 8 )
というかね、それならまだ
if(GetJoypadInputState(DX_INPUT_PAD1)==(PAD_INPUT_UP|PAD_INPUT_LEFT))
こういう例をあげてくれたほうが嬉しかったかな。
|を+にかえても思ったとおりに動作はするかも知れないが、それではいけないということ。

258
名前は開発中のものです。[sage]   投稿日:2016/02/21 05:53:09  ID:M/Be+VbG.net(16)
if(GetJoypadInputState(DX_INPUT_PAD1)&(PAD_INPUT_UP|PAD_INPUT_LEFT))
にしないと使えないね。

寝ます。
コメント1件

259
名前は開発中のものです。[sage]   投稿日:2016/02/21 06:01:12  ID:M/Be+VbG.net(16)
ごめんこれも使えなかった。
同時に押された判定はすこし長くなるな。
このままではどちらか片方押さた場合でも、、、
眠い。ほんと寝ます。

260
名前は開発中のものです。[sage]   投稿日:2016/02/21 08:09:43  ID:M/Be+VbG.net(16)
if(GetJoypadInputState(DX_INPUT_PAD1)&(PAD_INPUT_UP|PAD_INPUT_LEFT)==(PAD_INPUT_UP|PAD_INPUT_LEFT))
一つのキーチェックは!=0でいいけど
ボタン1|ボタン2|ボタン3
とか複数キーが押されているかのチェックの場合は駄目ですね。一つのキーが押されただけでも!=0を満たしてしまうから。
連投すいません。そして初級者以外の方、失礼しました。

261
名前は開発中のものです。[sage]   投稿日:2016/02/21 08:25:35  ID:M/Be+VbG.net(16)
if((GetJoypadInputState(DX_INPUT_PAD1)&(PAD_INPUT_UP|PAD_INPUT_LEFT))==(PAD_INPUT_UP|PAD_INPUT_LEFT))
すいません。もう一度だけ。
c 演算子 優先順位 で検索してください。
確か&(アドレスじゃない方)は==よりあとに評価された気がする。これはCの欠陥ではないのかとか書いてた書籍があった気がする。

不安だし、()はつけといたほうが良いと思う。
コメント1件

262
24[sage]   投稿日:2016/02/21 09:00:22  ID:Va9zPPiV.net(4)
なぜ俺が適当に上げた例に対して
何レスにも渡って解りづらい解説をしているのだ・・・

というか肝心の>18はもう居ないっぽいから
質問したかった内容自体がそこで合ってるのかわからんぞ

263
名前は開発中のものです。[sage]   投稿日:2016/02/21 09:24:49  ID:M/Be+VbG.net(16)
これでも簡単に書こうとしたのですけどね。
どの辺がわかりづらいですか?
簡単なことを簡単に書くのは難しいですね。

264
名前は開発中のものです。[sage]   投稿日:2016/02/21 10:04:32  ID:Va9zPPiV.net(4)
>33
説明が長くなるほど要点をつかみづらくなるから
補足は少なく、説明の訂正は出ないようにして、
大事な部分だけ短く簡単に説明した方が初心者には理解しやすい

補足とかは質問者に求められたときだけ説明すればいいかと
コメント1件

265
名前は開発中のものです。[sage]   投稿日:2016/02/21 11:11:53  ID:M/Be+VbG.net(16)
>34
了解です。

266
名前は開発中のものです。[sage]   投稿日:2016/02/29 21:14:11  ID:QBvMTSC4.net(2)
DXLibは初心者向けって聞くけど、シャープDXなどと何が違うの?
2Dゲームの場合。3Dなら素直にUnity使うし

267
名前は開発中のものです。[sage]   投稿日:2016/02/29 23:23:38  ID:leqKH6jq.net(2)
シャープDXってなんぞ。
初心者にオススメの1つではあるが、これで作られた市販ゲームもあるくらいには幅広いよ
コメント1件

268
名前は開発中のものです。[sage]   投稿日:2016/03/01 05:56:45  ID:+UwmpDoJ.net(2)
C言語で書きたくてwindowsAPI、グラフィックAPI触りたくない人向け

269
名前は開発中のものです。[sage]   投稿日:2016/03/01 15:06:45  ID:YBHnpXlS.net(2)
確かにC++ぽく作られてないのは嬉しい。
他の人のソースコードとかが解読しやすい。

270
名前は開発中のものです。[sage]   投稿日:2016/03/02 02:56:18  ID:ObT9YhJL.net(2)
俺もライブラリ作ってやるぜ!と意気込んで、
グラフィックと入力と音周りが出来たあたりで、DXライブラリで良いんじゃね?と気づいて戻ってくる感じ

271
名前は開発中のものです。[sage]   投稿日:2016/03/10 14:06:18  ID:hKSGgP4O.net(4)
キャラクターIDをソートする場合なんですけど
こういう場合はやっぱりバケットソート的なアルゴリズムが最速なのでしょうか?
条件
・10000体のキャラクターがいる(ID0〜ID9999)※ID0番は空欄扱いの時に使うので実質9999体
・それぞれのキャラクターはスコアを持ってる(とりうる値はunsigned charの0〜255)
・ソートする時はスコアの低い順に並べる
・スコアが同点ならIDが若い順に並べる

自作した処理の概要
int baketu[10000*256];
int kekka[10000];

まず配列baketu[]を0クリアして
for(int ID=1;ID<10000;ID++){
baketu[(IDのスコア*10000)+ID] = ID;
}
int x=0;int i=0;
while(x<9999){
if(baketu[i]>0){kekka[x]=baketu[i];x++;}
i++;
}
こんな感じです
int baketu[10000*256] ←なんかこれで10メガくらい使うみたいですし
もっとスマートなやり方は無いものでしょうか?

ただ、かなり頻繁に呼ぶ処理なので最優先したいのは速度です
コメント1件

272
名前は開発中のものです。[sage]   投稿日:2016/03/10 14:23:40  ID:chbXq+m7.net(2)
普通にクイックソートでいいのでは

ソート時間の比較
http://www.ics.kagoshima-u.ac.jp/~fuchida/edu/algorithm/sort-algorithm/speed-c...
コメント1件

273
名前は開発中のものです。[sage]   投稿日:2016/03/10 14:44:23  ID:w2U+RHTk.net(4)
そもそも頻繁に呼び出すなら
いちいちソートしないでソート結果をずっと保持する。
オブジェクトの追加削除が頻繁なら、
ソートではなく、正しい位置に差し込むようにする。

274
名前は開発中のものです。[sage]   投稿日:2016/03/10 14:44:30  ID:HzV85MQu.net(2)
RPGなどのスクロールゲーは、描画可能画像(マップサイズ)を作ってそこに描画した後に、ウィンドウに描画すればいいのですか?
速度やメモリを考えると、やめた方がいいですかね

275
名前は開発中のものです。[sage]   投稿日:2016/03/10 15:25:16  ID:hKSGgP4O.net(4)
>43
スコアの変更をするたびに並び替える関数を呼ぶってことでしょうか
その場合は一般的なソートではなくて、条件が限定されてる場合ならではの最適解があると考えて間違いないですよね?


あと今思ったんですけど>41の処理って下記の処理と速度ほとんど変わらない…?
int kekka[10000];
int x=0;
for(int i=0;i<256;i++){
 for(int ID=1;ID<10000;ID++){
  if(IDのスコア==i){
   kekka[x]=ID;
   x++;
  }
 }
}
コメント1件

276
名前は開発中のものです。[sage]   投稿日:2016/03/10 21:20:58  ID:w2U+RHTk.net(4)
どっちも2,560,000ループだから変わらないね。
可読性なら、俺は45のほうが解りやすかった。
(というか45を読んでようやく41がなにをしたいのか解った)

スコアの変動幅が少ない(=順位の変動が少ない)なら、
スコアが変わるたびに前後のスコアと比較して入れ換えるやりかたでもいいかな

スコアが頻繁に変わるなら
数秒毎にまとめてquicksort
コメント1件

277
名前は開発中のものです。[sage]   投稿日:2016/03/11 00:14:12  ID:0nAdN0wU.net(2)
>44
何が言いたいのか分からんが
ウィンドウより気持ち広めに描画すればいいんじゃないの?

278
名前は開発中のものです。[sage]   投稿日:2016/04/22 20:37:11  ID:OBq0v7em.net(2)
スマホ版DXライブラリ使ってみた人いる?
コメント1件

279
名前は開発中のものです。[sage]   投稿日:2016/04/22 23:20:09  ID:SApaeOWl.net(2)
純粋なc#でDXライブラリ作りたいと考えてる
コメント1件

280
名前は開発中のものです。[sage]   投稿日:2016/04/23 15:51:01  ID:dvo5BuGI.net(2)
フレームレートを上げてゲームの進行の高速化をしたいけどどうすればいいの?
setgraphmodeの第4引数に値をぶっこんでも何も起きん

281
名前は開発中のものです。[sage]   投稿日:2016/04/23 21:52:14  ID:9QnQQ2rD.net(4)
> 画面モードを設定する
> int SetGraphMode(int ScreenSizeX,int ScreenSizeY,int ColorBitDepth,int RefreshRate=60)

> 戻り値
> DX_CHANGESCREEN_OK 画面変更は成功した
> DX_CHANGESCREEN_RETURN 画面の変更は失敗し、元の画面モードに戻された
> DX_CHANGESCREEN_DEFAULT 画面の変更は失敗しデフォルトの画面モードに変更された
> DX_CHANGESCREEN_REFRESHNORMAL 画面の変更は成功したが、リフレッシュレートの変更は失敗した

とりあえず戻り値の確認しとけ。
あとはフレーム管理をどうやってるかによると思う。
垂直同期に丸投げしないで自前でフレーム管理してるなんてオチは……流石にないか
コメント1件

282
名前は開発中のものです。[sage]   投稿日:2016/04/23 22:17:31  ID:kA71q19C.net(2)
SetWaitVSyncFlag(FALSE)

283
名前は開発中のものです。[sage]   投稿日:2016/04/23 23:16:26  ID:O3+kZkoe.net(2)
 ゲームループを秒間60回さなくても高速処理できちゃうの?
 元より軽く作って、普段はウエイト入れてるだけにしないといけないんじゃないかな。

284
名前は開発中のものです。[sage]   投稿日:2016/04/23 23:49:59  ID:9QnQQ2rD.net(4)
>53
何を疑問に思ったが知らんが、最初からそういう話じゃねぇの

285
名前は開発中のものです。[sage]   投稿日:2016/04/24 08:09:36  ID:5496X3BE.net(2)
>52
thx。クソ速くなりました
しかしSetWaitVSyncFlagの変更はDxLib_Init前でないと利かないようです
起動中に進行速度を自由に調整したかったのですが難しそうです

286
名前は開発中のものです。[sage]   投稿日:2016/04/24 09:15:29  ID:nXkxGb8d.net(2)
いやだからフレーム管理方法なんて複数あるんだから
使い分ければいいじゃない

287
名前は開発中のものです。[sage]   投稿日:2016/04/24 09:50:30  ID:joRVkrHg.net(2)
>55
頭はゲームの内容を考えることに使った方がいいと思います

288
53[sage]   投稿日:2016/04/26 22:34:03  ID:x+Gf6b1S.net(2)
>54
 すいません、今自分で作っているモノが何をしても60フレームで安定しているものですから、逆の意味で頭を抱えていたんです。
 で、>52氏の教えに従いVSYNCを外したら2000前後を叩きだしたので、>51氏の最後の隠しパラメータRefreshRate=60の意味が分かりました。
 本当にありがとうございました状態ですm(_ _)m

 初挑戦で5年ばかり仕様に気が付かないとか、ちょっと笑えます(^^;

289
名前は開発中のものです。[sage]   投稿日:2016/05/04 00:59:12  ID:vZnLncWj.net(2)
まあ使う機会があるかどうかは全く別の話だしなー

290
名前は開発中のものです。[sage]   投稿日:2016/05/06 14:02:59  ID:l2ANUrOw.net(6)
今更だけど、リフレッシュレート変えるのはアカンだろw
垂直同期もオフにすんなw
根元でフレーム間の時間経過を定数倍するとか、
更新処理を複数回呼ぶとかいろいろやり方あるだろが

291
名前は開発中のものです。[sage]   投稿日:2016/05/06 14:26:18  ID:jbS1d0cx.net(4)
>60
一般に、60決め打ちとかのほうが
初心者には作りやすいと思うぜ

292
名前は開発中のものです。[sage]   投稿日:2016/05/06 15:26:36  ID:l2ANUrOw.net(6)
>61
そういう原始的な作りでも更新処理を複数回呼べばいいだけだし・・・
まあ入門サイトにありがちな経過フレーム数を1とする可変更新方式はゴミなんで
さっさと止めたほうがいいと思うよ

293
名前は開発中のものです。[sage]   投稿日:2016/05/06 19:13:13  ID:jbS1d0cx.net(4)
固定するならタイマー管理なのかねぇ
最近は120Hzとかのモニタも珍しくないし


>入門サイトにありがちな経過フレーム数を1とする可変更新方式
どんなん?

294
名前は開発中のものです。[sage]   投稿日:2016/05/06 21:28:30  ID:Grw/W8UC.net(2)
俺も垂直同期切ってタイマー管理だな
75ヘルツのモニターで早送りになった経験があるから

295
名前は開発中のものです。[sage]   投稿日:2016/05/06 22:18:18  ID:l2ANUrOw.net(6)
固定更新のために垂直同期切ってタイマー管理はありだけど
ティアリングが気になったりしない?

>62はちょっと分かりにくかったかな
要は垂直同期をとりながら更新をカウントしてるようなタイプね
メジャーなところだと龍神録とか
この方法は環境の違いを直接受けるし、その対処も醜くなるんだよ

296
名前は開発中のものです。[sage]   投稿日:2016/05/07 01:18:08  ID:oS0WNQLp.net(2)
固定にするなら、リフレッシュレート制御かテアリングか
どっちかを取るしかないんじゃないの?

>カウント
龍神録ちろっと見てみたけど分からんかった
単位時間あたりのループ回数をチェックして、それ超えそうになったらウェイト入れる感じ?

297
50[sage]   投稿日:2016/05/08 09:38:16  ID:y6rKy2Br.net(2)
2フレームに一度スクリーンフリップをすることでゲームの進行速度が2倍になりました
ゲーム中に速度の変更がきくようになったので目的は達成し解決しました

298
名前は開発中のものです。[sage]   投稿日:2016/05/11 22:20:44  ID:bMgn9LMw.net(2)

299
名前は開発中のものです。[]   投稿日:2016/06/07 01:07:55  ID:hB66gw1M.net(2)
垂直同期でやってるけど何故かFPSが59.9が多いんだよな
偶に60いくんだけど。龍神録のFPS管理は何故か57FPSになる

300
名前は開発中のものです。[sage]   投稿日:2016/06/07 11:13:02  ID:AssHyOle.net(2)
もともとNTSCの垂直同期って59.94Hzだけど
今のは完全に60Pなんかね

301
名前は開発中のものです。[sage]   投稿日:2016/06/07 20:41:15  ID:wUcW1H+O.net(2)
龍神録のところのプログラムって、垂直同期とタイマー待機を同時にやってた気がする
どっちかだけにするといいはず

302
名前は開発中のものです。[]   投稿日:2016/06/08 16:24:56  ID:uqtESUHJ.net(2)
>70
だからか、東方だと60FPSが多いからなんでだと思ってた
>71
龍神録のタイマー待機関数をSleepからWaitTimerにしたらいくらかマシになったけど
なぜか垂直同期を切ってFPS制御するより垂直同期とFPS制御を同時にやった方が軽くなった

303
名前は開発中のものです。[sage]   投稿日:2016/06/21 16:36:29  ID:bN0TQeIa.net(2)
LoadGraph等で同じ画像を複数回読み込んだときは、やはり同じ画像が複数個分メモリに展開されるのだろうか?

304
名前は開発中のものです。[sage]   投稿日:2016/06/21 18:42:57  ID:YpRlukE1.net(2)
うん

305
名前は開発中のものです。[sage]   投稿日:2016/06/21 19:13:04  ID:2iYzZ5We.net(2)
画像を改変したりして複数いるなら1回読み込んで、コピーするべき
HDD等からの読み込みは遅いから

306
名前は開発中のものです。[sage]   投稿日:2016/07/20 18:57:39  ID:/hGHlgJA.net(2)
垂直同期切ってもウィンドウモードだと60fpsになっちゃうんだけどこれどうにかならない?

307
名前は開発中のものです。[sage]   投稿日:2016/07/21 02:55:43  ID:cqeRkCwh.net(2)
垂直同期切れてないんじゃない?

308
名前は開発中のものです。[sage]   投稿日:2016/08/03 16:59:01  ID:X+OZY+Fp.net(2)
仮想関数の呼び出しが遅い
最初はDXlibと関係あるのかなーと思ったけどC++の仕様っぽい
みんなも気をつけろ

309
名前は開発中のものです。[sage]   投稿日:2016/08/04 02:17:02  ID:SwoLOy80.net(2)
自分も聞いたことあるけど、それがクリティカルになるって、
他のところがボトルネックになってたりしない?

あとは最適化オプションとかで何とかなりそうではあるが

310
名前は開発中のものです。[sage]   投稿日:2016/08/04 18:34:57  ID:BM0zlQCD.net(2)
関数の呼び出し速度が気になるようじゃ元々が問題だと思うんだけど
実際に通常関数を呼ぶのと速度的にはどれくらいの差なんだろう

311
名前は開発中のものです。[sage]   投稿日:2016/08/05 17:45:28  ID:GXDTbL61.net(2)
3Dモデルのボーンをプログラムで動かすときに、
・ボーンをワールド座標の特定の場所を向くようにしたい(カメラの注視のようにボーンを一点に向けたい)
・ボーンをワールド座標の特定の角度にしたい。例えば、ボーンを水平な角度にしたい
を行いたいのですが、
ボーンを動かすのは MV1SetFrameUserLocalMatrix でローカルの変換行列を指定する方法しかないですが
どうやればできますか?

312
名前は開発中のものです。[sage]   投稿日:2016/08/07 21:54:52  ID:0nKMuJM/.net(6)
プログラムをステップ実行したときに
DXライブラリのソースにステップインするにはどうやればできますか?
Visual Studio 2013使ってます

313
名前は開発中のものです。[sage]   投稿日:2016/08/07 22:00:00  ID:0nKMuJM/.net(6)
ちなみにDXライブラリのソースにステップインしたい理由は
エラーコードが-1しかなくて、何が原因かわからなくて調べるためです
たまに挙動不審になったときの調査もしたいです

314
名前は開発中のものです。[sage]   投稿日:2016/08/07 22:44:42  ID:0nKMuJM/.net(6)
>82は解決しました。簡単にできましたww

315
名前は開発中のものです。[sage]   投稿日:2016/08/08 00:03:13  ID:nCWjYGMh.net(2)
自己解決した時は、どんなに簡単であってもその方法をだな

316
名前は開発中のものです。[sage]   投稿日:2016/08/08 09:58:38  ID:A5U2Nxs1.net(4)
その方法も何もDXライブラリのソース公開されているからlibファイルの代わりにソースをプロジェクトに追加するだけやん

317
名前は開発中のものです。[sage]   投稿日:2016/08/08 10:00:13  ID:z9kN9Vnb.net(2)
pdbを置くだけでしょ
ステップインしたらその時にソースの場所聞いてくるわ

318
名前は開発中のものです。[sage]   投稿日:2016/08/08 10:03:39  ID:YjIAwMDj.net(2)
という風に、人によってやり方違うので
どんなに簡単でも手順は書いておいたほうが

それが質問した人の礼儀かと
レスしようとして自分とこで検証して回答しようとしたら
自己解決しましたの一言でしまってたりすること多いしねえ

319
名前は開発中のものです。[sage]   投稿日:2016/08/08 10:12:41  ID:A5U2Nxs1.net(4)
pdbって使い道あったのか
いつも使い道分からずに放置してたわ

320
名前は開発中のものです。[sage]   投稿日:2016/08/12 09:00:00  ID:j8xGV0qx.net(2)
DXライブラリは3Dモデルの大きさをセンチメートルで管理するのがいいのか?
メートルで管理してカメラの Near Clip を小さくするとアウトラインやZTestがおかしくなる

321
名前は開発中のものです。[sage]   投稿日:2016/08/13 05:15:02  ID:smt/5o17.net(2)
単位は人それぞれだけど、精度を下げりゃ描画が甘くなるのはそりゃ当然よ

322
名前は開発中のものです。[sage]   投稿日:2016/08/13 08:56:44  ID:kHkMVs63.net(2)
Zバッファのビット深度を変更する関数があったような
デフォは16bitだから32bitとかにしてみては

323
名前は開発中のものです。[sage]   投稿日:2016/08/13 09:38:49  ID:cO1Dtflu.net(4)
>90
俺も以前同じようなことで悩んだわ
Near Clipは破綻しない程度に大きな値をとる必要があるとのこと
俺の場合は1メートル〜数万キロのレンジで幅が広すぎて単位をどう弄ろうがZバッファの深度を深くしようがダメだったんで、
ここで教えてもらった「ワールド空間を複数の距離レンジに区切ってそれぞれを描画し最後に合成する」手法で切り抜けた
おかげでカメラが物体から5メートルまで寄ろうが1万キロ離れようがあまり問題はなくなった
ただし代償として描画処理の負荷は上がったけど・・・

>92
SetZBufferBitDepthでZバッファの深度を変えられる
でも確か24ビットまでじゃなかったかな?

324
90[sage]   投稿日:2016/08/13 10:22:48  ID:MTyr6UWS.net(4)
>91-93
レスありがとうございます
SetZBufferBitDepthは簡単なのですぐに試してみます
「ワールド空間を複数の距離レンジに区切ってそれぞれを描画し最後に合成する」手法は
ちょっと簡単にはできなさそうですが、プロのゲームっぽいですね。すごい

325
名前は開発中のものです。[sage]   投稿日:2016/08/13 13:32:29  ID:cO1Dtflu.net(4)
>94
方法さえ教えてもらえればそんなややこしい実装じゃなかったよ

1. まずMakeScreen関数で合成用のサブ画面を作る
2. SetDrawScreen関数で作成したサブ画面を描画対象にしてその後カメラのパラメータを設定
3. SetCameraNearFar関数でカメラから一番遠いクリップ領域を指定
4. ワールド空間の物体を描画
5. SetDrawScreen関数で裏画面を描画対象にする
6. DrawGraph関数で合成用サブ画面に描いたグラフィックを裏画面に投下処理つきで描画
7. 2〜6をクリップ領域を1つずつ手前に近づけながらforループで必要回数だけ繰り返す
8. ScreenFlip関数で裏画面と表画面を切り替える

みたいな感じ
継ぎ目がちょっと気になるという欠点があるらしいけど、俺の作ったプログラムでは大して問題にはならなかった

326
名前は開発中のものです。[sage]   投稿日:2016/08/13 17:10:08  ID:MTyr6UWS.net(4)
>95
ありがとうございます。実装できる気がしてきました

327
名前は開発中のものです。[sage]   投稿日:2016/08/23 06:56:44  ID:8oK85pQf.net(4)
 すいません。 初歩的なことを教えて下さい。
 DXライブラリを3.12aから3.16d(最新版)に昨日上げたのですが、以下の様なエラーが出ます。
エラー 1 error LNK1104: ファイル 'DxDrawFunc_vs2012_x86_d.lib' を開くことができません。

 丁度ドライブが一杯になったのでそれでファイル欠損起こしたのかと、整理して落としなおして
再インストールしても変わりません。 消さないでいた3.12aに戻せば正常にコンパイルできます。
 どんなポカミスが考えられるでしょうか。

328
名前は開発中のものです。[sage]   投稿日:2016/08/23 08:00:58  ID:ZkV35hFb.net(2)
DXライブラリのフォルダの下を 'DxDrawFunc_vs2012_x86_d.lib' で検索して、
そのフォルダがプロジェクトのプロパティの「リンカー」の中の
「追加のライブラリディレクトリ」に設定されているか確認してみたか?
設定してなかったら設定する

329
97[sage]   投稿日:2016/08/23 10:52:44  ID:8oK85pQf.net(4)
 ありがとうございます。
 おっしゃるとおりでした。
 C/C++全般のインクルードディレクトリだけ変更してリンカ全般の追加を変更していなかったのが原因でした。
 これで総て正常終了できました。
 ありがとうございました。

330
97[sage]   投稿日:2016/09/16 19:48:32  ID:/GVguODS.net(2)
DrawBox()って思った以上にコスト高なのね。
エディタ作っているのですが、マウスで指定範囲を決定するのに半透明のFilling=TRUEで
サイズが{400,200}程度になると追いついて来ないし。うちの環境だと。
まあ範囲が分かれば良いだけなので、非透明のFilling=FALSEにしましたが。
機能の根幹に必要な命令じゃなくて良かった・・・。

331
名前は開発中のものです。[sage]   投稿日:2016/09/16 20:42:39  ID:arX7j3iZ.net(2)
ハードウェアで描画してないだけちゃうの?

332
100[sage]   投稿日:2016/09/17 02:14:24  ID:bU3etqlH.net(2)
>101
SetUse3DFlag()指定しなければデフォで使ってくれないの?
TRUEで明示してみたけどやっぱ重かった。

333
名前は開発中のものです。[sage]   投稿日:2016/09/18 05:02:11  ID:/gg7FKD1.net(2)
画面全体塗りつぶすのに毎フレーム使ったりするし重いわけないと思うがなぁ
最新版では試してないけど

334
100[sage]   投稿日:2016/09/22 22:23:47  ID:j/yM3Z13.net(2)
>103
 すいません、DXライブラリは無罪でした。
 コード読み直していたら、離れた所から12回ループでDrawBox()してからScreenFlip()しておりました。
 そりゃ感覚とは結果が違うのも当たり前で。
 大変失礼しました・・・。

335
名前は開発中のものです。[sage]   投稿日:2016/09/23 11:02:39  ID:grmg4z9F.net(2)
        ∧∧       
       ヽ(・ω・)/   ズコー  
      \(.\ ノ
    、ハ,,、  ̄

まぁ原因判明してよかったね

336
名前は開発中のものです。[sage]   投稿日:2016/09/26 22:11:34  ID:gS8npJwc.net(2)
スーファミっぽくラスタースクロールの波うつようなあのぐにゃぐにゃした表現をしたいんだけれども
DrawRectGraphで一列ずつ描画するのと
SetDrawAreaで描画できる範囲を一列ずつ変更しながら描画するのと
どっちが早いんだろう

337
名前は開発中のものです。[sage]   投稿日:2016/09/27 07:34:39  ID:6RU/4Se1.net(2)
どっちもクソ遅そうな気が……
ラスタースクロールのシェーダー書くのがいいが、
シェーダーはDXライブラリではちょっと敷居が高くてプログラム難しそうなのな
ボーンを仕込んだポリゴンの板に画面の画像を貼り付けて、
ボーンでラスタースクロールふうにアニメーションさせるのが楽な気がする

338
名前は開発中のものです。[sage]   投稿日:2016/09/27 12:29:31  ID:kk2kAC73.net(2)
10年前のPCで動くSTG(弾は500発程度)で、640*480程度なら上から一行ずつ描画でも特に処理落ちしなかった
DrawRectGraph使った

今のハードなら余裕だと思う

339
名前は開発中のものです。[sage]   投稿日:2016/10/04 20:15:50  ID:rnDdxDqG.net(2)
SetLoopAreaTimePosSoundMem()

この関数めっちゃ便利なんだけどググっても全くヒットしなかったんだが、いつ頃からあるんだろ?
ループ開始位置と終了位置をms単位で指定できるから音声ファイルを編集する必要がなくなった
無加工のファイルでもこっちの好みでループ範囲を指定できるから
音楽ファイルはこの素材屋からDLしてねってreadmeに書いておけば配布するファイルサイズも小さく出来る

あと軽く検証しただけだけど再生中に指定しなおしても有効だったから
FF6のラスボス戦みたいに
イントロ‐Aメロ‐繋ぎ‐Bメロ‐繋ぎ‐Cメロ〜 みたいになってるファイルで
最初はAメロをループ、条件を満たしたら繋ぎを経由してBメロループに移行〜みたいな演出も簡単に出来る

340
名前は開発中のものです。[sage]   投稿日:2016/10/04 21:56:37  ID:HgclvPkb.net(2)
そんなのあったのか
最後まで行ったら途中から再生、ってのは
結構前からあったの覚えてるんだが

341
名前は開発中のものです。[]   投稿日:2016/10/15 11:32:13  ID:NMxKtSgQ.net(2)
試してないけど

アンドロイドでも

動くように

なってたのね知らなかった

何処まで、動くのかな?

342
名前は開発中のものです。[sage]   投稿日:2016/10/16 19:58:12  ID:ZsomXKa1.net(2)
あらかじめ大きめのサイズの空っぽの画像をMakeScreenで用意しておくことの有用性に今頃気付いたぜ
これとDerivationGraphのコンビで作り直したらぐっと軽くなった

343
名前は開発中のものです。[sage]   投稿日:2016/10/16 21:02:14  ID:ldA8bGPF.net(2)
テクスチャ切り替えはコスト大きいからね

344
名前は開発中のものです。[sage]   投稿日:2016/10/23 23:02:40  ID:t2BOiWAY.net(2)
>109
 使ってみたら、ほんとにスゴイですね。
 時代がCDDAやストリーミング再生になってもう無限ループは無理なのかなーとか思っていたのだけど。
 ただWAVEで成功したのでそのデータをMP3にしたら、上手く繋がらなくなっちゃった。
 もう少しデータの作り方工夫すれば上手く行くのだろうけど。

345
名前は開発中のものです。[sage]   投稿日:2016/10/24 06:53:24  ID:YwSDnTaO.net(2)
>114
MP3はこの関数に限らずループの時に違和感が出ると言われてるから
たぶんMP3の仕様の問題もあると思う

ogg形式では上手くいったよ
ただ変換の時にビットレートを固定したファイルでしか検証してないから
可変ビットレートの方法で圧縮されたoggファイルで上手くいくかは未検証

346
名前は開発中のものです。[sage]   投稿日:2016/10/24 12:40:43  ID:GmlKA2wN.net(2)
MP3は権利の問題があるから他の使えって言われてた時期があったね

347
名前は開発中のものです。[sage]   投稿日:2016/10/24 13:10:36  ID:Y2gOrRK8.net(2)
権利よりも仕様が問題だな
MP3は無音が挿入されたり余計なことされる場合が多いからゲームに使うようなもんじゃない

他の環境では手抜き実装でWindowsの再生機能に丸投げできるメリットがあるが、DXライブラリなら関係ないし

348
名前は開発中のものです。[sage]   投稿日:2016/10/24 23:43:54  ID:UrCtC7CV.net(2)
ループできないからだったか、昔は
DXライブラリではogg使うなとかもあったね

349
名前は開発中のものです。[sage]   投稿日:2016/10/27 13:49:28  ID:1Lorx2LL.net(2)
昔は BGMにはmp3, 効果音にはwav だったでしょ

350
名前は開発中のものです。[sage]   投稿日:2016/10/27 15:57:58  ID:HwaxCMEV.net(4)
116の言う通りmp3はライセンス関係が危ないということで避けられoggが推奨されていた
仕様よりもこっちのほうが重大問題
ゲーム制作関係でmp3推奨というのは聞いたことがない

351
名前は開発中のものです。[sage]   投稿日:2016/10/27 17:43:02  ID:rFz+rXeH.net(2)
MP3登場時にはoggなんてなかったから
Wavよりファイルサイズの小さいMP3を推奨する風潮はあったと思うけど

352
名前は開発中のものです。[sage]   投稿日:2016/10/27 18:10:43  ID:HwaxCMEV.net(4)
ogg普及前はソフトウェアMIDIが多かった
もしmp3が主流だったと思う人がいたら、その人のいた界隈はライセンス関係の意識が薄かったんだよ
まぁ00年代前半まではそういう時期でもあったけど

353
名前は開発中のものです。[sage]   投稿日:2016/10/27 20:01:09  ID:lueiMAyc.net(2)
市販のゲームで5000本以上販売が課金の条件だったから、フリーゲームや小規模同人では普通に使われてたよ

354
名前は開発中のものです。[sage]   投稿日:2016/10/27 20:28:51  ID:BuMiN4CL.net(2)
制作中のゲームにはキャラの髪型や服や装備や小物を変えるキャラメイキング(着替え)の機能があって、
今はひとつのMV1ファイルにまとめておき、フレーム表示/非表示で切り替えてるのですが、
だんだんアイテムが増えてきてファイルが大きくなってしまったので
別の方法をとりたいのですが、
キャラメイキングや着替えを実装するのに何かいい方法ありませんか?
髪型や服や装備や小物ごとにXファイルでバラバラにしておいて、Xファイルをテキスト結合するのが
楽なのではないかと思っていますが、もっと良い方法ありませんか?

355
名前は開発中のものです。[sage]   投稿日:2016/10/31 19:03:23  ID:X+KVjoNa.net(2)
DXライブラリのユーザーが作ってるのって
2Dゲーと3Dゲーのどっちが多いんだろ?
俺は3Dには手が出せてないんだけど

356
名前は開発中のものです。[sage]   投稿日:2016/10/31 19:10:44  ID:8dsRDt6U.net(2)
2D

357
名前は開発中のものです。[sage]   投稿日:2016/11/01 22:09:07  ID:kJ7Uoghc.net(2)
3Dは海外のゲームエンジンが無料化されてしまったので、
3Dゲーム制作者はそっちへ行ってしまった気がする
2Dだとどれもあんまり変わらない気がするが

358
名前は開発中のものです。[sage]   投稿日:2016/11/01 22:26:25  ID:+8ot24fl.net(2)
2Dも描画しかないDXライブラリよりもオブジェクト管理出来たりするエンジンに流れている気がする

359
名前は開発中のものです。[sage]   投稿日:2016/11/02 07:20:39  ID:/aW+4m+D.net(6)
全部コードに直書きする形でならなんとか自分の思う通りに作れるようになったとは思うんだけど
さすがに会話イベント一個追加したり、マップに壺一個追加しただけで再コンパイルする必要がある状況って
なんというか我ながらアホだよね

この状況を卒業するには何を勉強したらいいのかアドバイスください
作ってるのは2DRPGで、主にNPCのイベント内容をコードの外に出すにはどうやればいいかで躓いてます

とりあえず思いついてるやり方は
セリフ表示とか効果音を鳴らすとかのイベント処理を担っている関数に番号振って引数の数を紐付けしておいて
イベントの内容を全部、関数の番号、引数の数、引数の数値…って数字だけのデータにして
そのデータを読み込んで、どの関数を呼び出し引数にはどんな数値を入れるかを判断して実行する関数を作り
イベントの内容を全部数値に置き換える方法なんですけど

360
名前は開発中のものです。[sage]   投稿日:2016/11/02 08:13:58  ID:8LrVjVrS.net(2)
>129
自分でも気付いてる通り、基本原則はコードとリソースを分離すること。

テキストファイルの読み込みと解析が出来るなら
単純なシナリオファイル(会話+αくらい)のローダくらいなら比較的簡単。
まあそれ以上に複雑なことをやるなら、素直に
既存のスクリプト言語の組み込み用ライブラリを頼ったほうが良いと思うけどね。


次点としては、ソースファイルの構成を見直して、最低限のビルドでも済むようにすること。

各クラスの書き方、各ファイルの依存関係なんかを整頓することで、
ちょっと修正したくらいなら、長時間のビルドを要さなくなる。

361
名前は開発中のものです。[sage]   投稿日:2016/11/02 13:45:37  ID:/aW+4m+D.net(6)
大体の方向性はこんな感じでいいんだということであれば進めていきたいんですが
躊躇している理由が2つあります

基本的に作り始める時に
クラスとかポインタとかよくわかんないけどとりあえずやってみるべ!と始めたので
配列と構造体だけで設計されてて、実は今でもクラスのことはよくわかっていません
だけどキー入力を把握すことと、変数の操作と、画像と音を自分の望む形で望むタイミングに表示再生出来るなら
自分の作りたいゲームは作ることが出来るはずだ!という考えの下で強引に作り続け
変数の値に合わせて画像や音の状態を制御する関数を作って、それを毎フレームScreenFlipの前に呼び出している
なんていう作りになってしまってます

キャラクターに歩行アニメーションや特殊なポーズをとらせたりするのも
BGMを変更するのも効果音を鳴らすのも、HPMPの増減やアイテムの入手なども
picture[ kyaraDATA[kyaraid].pictureID ].pattern=8;
SEplayflag[seID]=1;    BGMID=BattleBGMID; とか
kyaraHP[kyaraid]+=1000;
itemstorage[itemid]++; とか
ほとんどこういう形でイベントを組み立ててるんですよね……
ちなみにこの変数全部グローバル変数です

この単純な変数操作を外に出のに、変数全部に番号振ってやる以外に方法が思いつかず
その数が数だけにちょっと躊躇っているのです
それに
if(itemstorage[itemid]<99){
itemstorage[itemid]++;
takarabakoOpenFlag[takaraID]=1;
}else{
JISAKU_serihu(1,"これ以上持てない",0);//最初の引数がしゃべるキャラ、最後のは吹き出しの形のタイプ指定
}
みたいに作ってるイベントの条件分岐の部分の外部への出力方法が思いつかないっていう問題点もあります

なんかこう、こんな低レベルな人間にもできる上手いやり方ありませんかね?

362
名前は開発中のものです。[sage]   投稿日:2016/11/02 15:10:54  ID:C/+BZRXz.net(4)
2chは行頭の半角スペースやタブは無視する

363
名前は開発中のものです。[sage]   投稿日:2016/11/02 15:11:48  ID:C/+BZRXz.net(4)
途中で書き込んでしまったけど、そういうわけでコード書くときは全角スペース使って見やすく書いて

364
名前は開発中のものです。[sage]   投稿日:2016/11/02 15:50:25  ID:/aW+4m+D.net(6)
if(itemstorage[itemid]<99){
  itemstorage[itemid]++;
  takarabakoOpenFlag[takaraID]=1;
}else{
  JISAKU_serihu(1,"これ以上持てない",0);//最初の引数がしゃべるキャラ、最後のは吹き出しの形のタイプ指定
}
複数行にまたがってる部分はここだけです
後は本当に変数に代入してるだけというか…

365
名前は開発中のものです。[sage]   投稿日:2016/11/02 15:53:23  ID:22j5AZ4g.net(2)
>131
データにしやすいパターンやお約束のイベントだけをデータベース化して
特殊処理はそのままハードコートでいいんじゃねぇの
「これをデータ化したら本当に効率化されるのだろうか」と考えて
非効率になりそうだったらハードコートのまま
そんなことよりもっとプレイヤーから見て喜んでもらえることに意識を集中したほうがいい

366
名前は開発中のものです。[sage]   投稿日:2016/11/02 17:31:46  ID:mreiywNQ.net(4)
&#160;あ
この板Unicode参照出来なかった?

367
名前は開発中のものです。[sage]   投稿日:2016/11/02 17:32:02  ID:mreiywNQ.net(4)
無理か
VIPなら出来るのに

368
名前は開発中のものです。[sage]   投稿日:2016/11/09 13:59:08  ID:DtsDG8yY.net(2)
3Dゲームでマウスをクリックした位置にある3Dモデルをできるだけ高速に取得したいのですが、
何かいい方法はありますか?
コリジョン(衝突判定)関数がありますが、当たり判定用のメッシュを用意しないといけないようなので
ちょっと手間がかかりすぎるのでできればもっと手軽な別の方法がいいですが

369
名前は開発中のものです。[sage]   投稿日:2016/11/10 02:38:50  ID:woNsYOXh.net(2)
他に方法無いやろ

370
名前は開発中のものです。[]   投稿日:2016/11/22 19:00:44  ID:4Lu6ZO/B.net(2)
ちょっとウンコしてくる

371
名前は開発中のものです。[sage]   投稿日:2016/11/22 19:35:51  ID:amdDwmR+.net(4)
Convert Mouse Location To World Spaceでライントレースしか分からない

372
名前は開発中のものです。[sage]   投稿日:2016/11/22 19:38:26  ID:amdDwmR+.net(4)
>141
ue4スレと間違った

373
名前は開発中のものです。[]   投稿日:2016/12/10 02:51:28  ID:H338C5QI.net(2)
しまった!お尻ふいてなかった

374
名前は開発中のものです。[sage]   投稿日:2016/12/10 21:12:58  ID:ijDtE922.net(4)
>138
画面描画には直接利用しないテクスチャに取得対象モデルをレンダリングしておいて判定するとか

375
名前は開発中のものです。[sage]   投稿日:2016/12/10 21:14:24  ID:ijDtE922.net(4)
とおもったら1月前かよ

376
名前は開発中のものです。[sage]   投稿日:2016/12/18 01:11:06  ID:w4mjhhpa.net(14)
初歩的なことですが、
画像を描画する際の関数の仕様について迷っています

例えば、描画系の関数をできるだけ少なくして、内部変数によってDXライブラリの描画関数を呼び分けるのがいいのか、
あるいは、描画系の関数を目的別に用意して、画面側で使い分けるのがいいか

フェードインの機能の場合、
前者なら「setModeFadeInの後、drawする」
後者なら、「drawとfadeInをそもそも別関数にする」

個人的には前者が正解のような気がしているのですが、
そもそも発想自体が間違っているのでしょうか?

御存知の方いれば、ご教授頂けると嬉しいです

377
名前は開発中のものです。[sage]   投稿日:2016/12/18 17:01:06  ID:g4K5bJ5s.net(4)
関数の仕様と言うよりは、抽象度とか設計とかの話なのかな?

なんとなくは分かるけど誤解してるかもしれないんで
数行程度のサンプルソースを書いてくれると嬉しい

378
名前は開発中のものです。[sage]   投稿日:2016/12/18 17:12:32  ID:GrYJvN1j.net(4)
個人的には後者の方が好き
状態が多いとバグの原因になる

379
名前は開発中のものです。[sage]   投稿日:2016/12/18 18:47:26  ID:w4mjhhpa.net(14)
>> 147
たしかに、「抽象度とか設計」の質問と言った方が適切かもしれません。失礼しました
具体的にいえば、以下のイメージです

■パターン1
if (ボタンが押されたら) {
画像A.setFadeIn(引数に透過速度などの更新情報);
}

画像A.draw();(透明度の加減処理。 また透過度が100以外なら、DXライブラリのSetDrawBlendModeを使うかを判定。フェードインが終わったら、内部変数のフラグを立てる)

if (画像A.IsFadeInComplete()) {
// フェードイン終わった!
}

380
名前は開発中のものです。[sage]   投稿日:2016/12/18 18:48:30  ID:w4mjhhpa.net(14)
■パターン2
if (ボタンが押されたら) {
グローバル変数B = true;
}

if (グローバル変数B) {
画像A.drawFadeIn(引数に透過速度などの更新情報。毎フレーム同じ情報を渡すのが違和感);

if (画像A.IsFadeInComplete()) {
// フェードイン終わった!
}

} else {
画像A.draw();
}

最初はパターン2でやっていたのですが、これだと例えば「回転とフェードインとかが同時にできない?」と思って、パターン1に変えました
すると、今後はフェードインの更新情報を画像Aに持たせたためか、あるいは、draw関数内の条件分岐が増えたせいか、処理が重くなってしまいました
この程度で重くなるのかも疑問ですが、そもそも両パターンともNGなのではと思い始めた次第です
ゲーム系プログラミングのお約束が分かってないのが、一番の原因ですが……

>148
ご教授ありがとうございます。
何がバグの原因になるとか全然分からないので、大変参考になりました

381
名前は開発中のものです。[sage]   投稿日:2016/12/18 18:53:42  ID:w4mjhhpa.net(14)
132 133 の書き込みを読むべきでした すみません……

■パターン2
if (ボタンが押されたら) {
  グローバル変数B = true;
}

if (グローバル変数B) {
  画像A.drawFadeIn(引数に透過速度などの更新情報。毎フレーム同じ情報を渡すのが違和感);

  if (画像A.IsFadeInComplete()) {
    // フェードイン終わった!
  }

} else {
  画像A.draw();
}

382
名前は開発中のものです。[sage]   投稿日:2016/12/18 19:39:00  ID:g4K5bJ5s.net(4)
グローバル変数を使うかどうかとか
複数の状態を同時に実行できない問題をどうするかとかは別として
自分なら2の方向かなあ

383
名前は開発中のものです。[sage]   投稿日:2016/12/18 20:00:49  ID:oO1EoBtD.net(8)
>146,>149-151
細かい点ですが、「フェードイン」とは、画像Aが透明な状態から徐々に濃く(明るく)なっていく処理をさしているのですか?
ボタンを押さないとフェードイン処理が始まらないみたいなんですが、
そもそもボタンを押してないと、画像A.draw()で何を描画してるんですか?

また画像A.IsFadeInComplete()が真になると、何が起こるんですか?
この部分は問題を説明する上で、さんぷるにふくめるひつようがあるのですか?

またなぜ151のパターン2で、わざわざグローバル変数Bをサンプルに含めているのがよくわかりません
サンプルとしては、
if (ボタンが押されたら) {
  画像A.drawFadeIn(引数に透過速度などの更新情報。毎フレーム同じ情報を渡すのが違和感);
   :
でいいんじゃないですか

仕様がいまいちイメージできません

384
名前は開発中のものです。[sage]   投稿日:2016/12/18 20:04:49  ID:GrYJvN1j.net(4)
あーでもグローバルじゃなくてブラシクラス作ればいいかも

385
名前は開発中のものです。[sage]   投稿日:2016/12/18 20:08:44  ID:oO1EoBtD.net(8)
質問の意図は

■パターン1
画像A.draw(ボタンが押されたか、引数に透過速度などの更新情報);//毎フレーム同じ情報を渡すのが違和感

■パターン2
f (ボタンが押されたら) {
  画像A.drawFadeIn(引数に透過速度などの更新情報);
} else {
  画像A.draw();
}

でどっち?
みたいな話かと思ったけど、ちがうのか・・・

386
名前は開発中のものです。[sage]   投稿日:2016/12/18 20:41:41  ID:w4mjhhpa.net(14)
>153
ごめんなさい たしかにサンプルが不適切です
この場合だとフェードインではなく、フェードアウトになります
ボタン押したら、画像が消えていくみたいな
質問の意図に関しては 155で指摘されている通りです

>155
ありがとうございます
グローバルではなく、staticなローカル変数、あるいはブラシクラスを検討してみます

ブラシクラスとなると、画像インスタンスを受け取って、内部情報を更新するという意味かな

387
名前は開発中のものです。[sage]   投稿日:2016/12/18 21:01:52  ID:w4mjhhpa.net(14)
思った以上に反応があって、ちょっと焦ってました
156の「>155」は、「>152」が正しい

154の「グローバル」の意味が把握できていないけど、たぶんグローバル変数Bのことじゃないよね
156の自分の書き込みは無茶苦茶。グローバル変数Bとブラシクラスは関係ない

とりあえず方向性は見えてきたので、ありがとうございます

388
名前は開発中のものです。[sage]   投稿日:2016/12/18 21:08:52  ID:oO1EoBtD.net(8)
流れがつかめませんが、解決したんですか

ちなみに>155でいうと、自分はパターン2派。可読性が良くなると思うから。
画像A.のdrawFadeIn()とdraw()で重複するブロックが肥大化してきたら、その重複部分をinline関数に切り出してる

しかし・・・
確かに可読性が悪いとストレスの原因になるが、
可読性を確保する労力が新たなストレスと生むというジレンマ・・・

389
名前は開発中のものです。[sage]   投稿日:2016/12/18 22:50:19  ID:w4mjhhpa.net(14)
>158
混乱させてしまったようで、申し訳ないです
155の意図をやっと把握しました(訂正に訂正を重ねてホンマ……)

パターン1は、どこかでフェードインの命令要求を登録した後、draw関数を呼び出します
draw関数内では、透過度の変更要求の確認、透過度の更新、および、DXライブラリ「SetDrawBlendMode」の呼び出しを行います
透過度の変更要求がない場合は、SetDrawBlendModeを使いません
なので、通常描画もフェードイン描画も一律draw関数を呼びだすことになります

パターン2は drawFadeIn とdraw を別関数にします
フェードインするときは、drawFadeInを呼び出して、引数として透過度の更新情報を渡します

結論としては、皆さん「パターン2がマシ」と仰っているので、その路線で進めようと思います
描画処理専門のブラシクラスも含めて、検討してみます

可読性に関しては、最近、可読性を確保するためのストレスに負け始めてます
重要なのは重々承知ですが、やはり面倒……
趣味なはずなのに、仕事と同様のストレスを感じる

390
名前は開発中のものです。[sage]   投稿日:2016/12/18 23:01:17  ID:oO1EoBtD.net(8)
>159
フェードアウトとフェードインの区別が困難になるほど、なにやら複雑な夢(野望、殺意)を秘めているみたいですね
お手柔らかにお願いします(笑)

ロベールさんのサイトによると、
inline関数は必ずしもinline展開されないみたいだけど、
誰か環境ごとに厳密に検証した人いるのかな?
自分はVC++の判断を信じてる!

391
名前は開発中のものです。[sage]   投稿日:2016/12/19 00:31:54  ID:HwJJ4Rji.net(2)
例えば「マリオが死ぬと画面がフェードアウトして画面が切り替わる」
…という処理があるとして


■パターン1
マリオの死亡処理のところに
具体的な切替演出の設定(この場合はフェードアウト)を書くことになる。

■パターン2
マリオ死亡時にやることは
画面切替フラグを立てるだけで、死亡処理に集中することが出来る。


画面切替の演出には、画面がどんどん暗くなる「フェードアウト」だけでなく、
真っ白になったり(ホワイトアウト)、ワイプしたり色んな演出パターンが考えられる。
実際にやるかどうかは別としてね。

そうなると、画面切替処理は独立させておいたほうが取り回しが良くなるのではないか?
というのがオイラの考える2のメリットかな。

392
名前は開発中のものです。[sage]   投稿日:2016/12/19 16:22:26  ID:9RjupL+U.net(2)
状態に対して××モードと名前をつけて
上手くハマるならそれを使えばいいよ

393
名前は開発中のものです。[sage]   投稿日:2016/12/19 23:36:24  ID:ABRexmh1.net(2)
>161
わかりやすい例え、ありがとう
まさにそういう事例を想定していたので、とても参考になります

>162
了解です

394
名前は開発中のものです。[sage]   投稿日:2017/01/08 23:39:08  ID:3fqQn8Jq.net(2)
久しぶりにDXライブラリ使ってたんだけど、文字入力して変換しようとするとIMEの変換候補がゲームウィンドウの左下に表示される。
ちなみにGoogleIMEでは左下でMicrosoftIMEは右下。
昔触ったときは文字の入力した文字のすぐそばに表示されてた気がするんだけどWin10(Win8?)から仕様が変わったんだろうか。
ぐぐったらWin8でIMEウィンドウ自体が出ない不具合があってそれは解消されたようなんだが。

395
名前は開発中のものです。[sage]   投稿日:2017/01/13 09:20:03  ID:JxeCTkK7.net(4)
文字入力といえば自作のアクションゲームで名前入力辞めマスタ
よーく考えるとユーザー自身しかしないだろうし

396
名前は開発中のものです。[sage]   投稿日:2017/01/13 09:22:32  ID:JxeCTkK7.net(4)
キーのログをとってmovieみたいに再現できる機能も省略
今なら動画をとろうと思えばキャプチャソフトを使えばよいし

楽になった分、今度こそ完成に近づくと良いけど

397
106[sage]   投稿日:2017/01/17 15:54:13  ID:aj0DNk7d.net(2)
スレに残しておきたいと感じた情報を書いておきます

>106で沸いた疑問を縦800ピクセルの画像で比較検証したところですが
DrawRectGraphで一列ずつ描画するのと
SetDrawAreaで描画できる範囲を一列ずつ変更しながら描画するのでは

比べるのがおこがましいくらい
DrawRectGraphで一列ずつ描画する方が
軽かったという検証結果が出ました
12倍くらいの差がありましたので、10倍以上違うのは確実だと思います

ここまで違うのならどんな環境でもDrawRectGraphの方が良いのは確実なんじゃないかと思います
ラスタースクロールをシェーダ使わずに実装するならDrawRectGraphが良いです

以上、報告終わり

398
名前は開発中のものです。[sage]   投稿日:2017/01/29 19:37:06  ID:rdbqqXVO.net(2)
>167
SetDrawAreaを使うと連続描画が途切れるからね

399
名前は開発中のものです。[sage]   投稿日:2017/01/30 18:28:11  ID:2zIjyMmQ.net(2)
Delayフレーム後にSoundHandleを指定の音量パン周波数で再生する
SoundEffect(int SoundHandle,int VolumePal,int PanPal,int FrequencyPal,int Delay)

こんな関数を作りたいんだけど実装方法が思いつかない
SetSoundCurrentTimeでマイナスの値を設定出来たら簡単なのに

400
名前は開発中のものです。[sage]   投稿日:2017/02/16 01:43:45  ID:vIVM03On.net(2)
マイクから入力される音声のdBを
監視するアプリって作れますか?

401
名前は開発中のものです。[]   投稿日:2017/02/26 02:54:28  ID:NkbyLrdK.net(4)
DX11対応の環境でサンプルプログラムをコンパイルし実行したらDX11で動いていましたが
この.exeをDX11非対応の環境で実行するとDX9などで動くんですか?

手元にDX11非対応の環境が無くて試せないんですが2Dゲーを作る分には特に気にしなくても大丈夫なんでしょうか

402
名前は開発中のものです。[sage]   投稿日:2017/02/26 02:56:31  ID:NkbyLrdK.net(4)
sage忘れ失礼しました

403
名前は開発中のものです。[sage]   投稿日:2017/02/26 04:39:50  ID:cv+wlHl/.net(2)
オリジナルシェーダ使ってなければ問題ないはず

404
名前は開発中のものです。[sage]   投稿日:2017/02/26 11:18:23  ID:SbF7UdV7.net(4)
Android対応のDXライブラリが公開されたようだね
Unityやcocos2dと比べるとメリットがあまりないのがアレだけど
(DX11対応みたいに中途半端になりそうなところがまたね……)

405
名前は開発中のものです。[sage]   投稿日:2017/02/26 11:24:07  ID:SbF7UdV7.net(4)
>171
DX11でつくるのなら
DXライブラリは、DX11の機能のテッセレーションやジオメトリシェーダー
コンピュートシェーダーなど対応していないからあまりオススメしないぞい

406
名前は開発中のものです。[sage]   投稿日:2017/02/26 18:26:14  ID:w1YArNR6.net(2)
android対応dxライブラリマジやがw
ちょっとスマホゲー作りたくなってきた・・・

407
名前は開発中のものです。[sage]   投稿日:2017/02/26 23:50:04  ID:UgWHSXy5.net(2)
ゲームエンジンで実機デバックしてたから
VS2015の実機デバックがそのまま使える
DXライブラリのプログラムも実機でみれて楽しい

408
名前は開発中のものです。[]   投稿日:2017/02/27 17:14:55  ID:HzyfcOK5.net(2)
Android対応まじだったw
前に誰かがcocos2dでやってたの使ってみたんだけど
まともに動かんかったから公式で対応してくれるのはでかい
帰ったら自作ゲームを移植してみよう

409
名前は開発中のものです。[sage]   投稿日:2017/02/27 19:38:03  ID:yzmBThPX.net(2)
個人開発なのにそんなに手広くやって大丈夫なんだろか。
良い人である以上に人が良すぎてサポートで死にますよ。

410
名前は開発中のものです。[sage]   投稿日:2017/02/27 19:49:51  ID:LeUk6F53.net(2)
OSSだしgithubで開発すれば良いのに

411
名前は開発中のものです。[]   投稿日:2017/02/27 19:50:11  ID:hCixZHbE.net(2)
dxライブラリのあり方としての謎が深まる

412
名前は開発中のものです。[sage]   投稿日:2017/02/28 00:19:17  ID:VdUT2lLZ.net(4)
つかVS2015がandroid対応していたことに驚き

413
名前は開発中のものです。[sage]   投稿日:2017/02/28 01:06:31  ID:kAgsABkj.net(4)
今MSはマルチプラットフォームに必死だからね
Win10でBash使えるようにしたりLinuxにVisual Studioのコードエディタを公開したりと

1番驚いたのはThe&#160;Linux&#160;FoundationにMSが入った事だな

414
名前は開発中のものです。[sage]   投稿日:2017/02/28 01:07:15  ID:kAgsABkj.net(4)
ごめんスペースだと思ってコピペしたのが文字化けしてる
The Linux Foundationね

415
名前は開発中のものです。[sage]   投稿日:2017/02/28 01:27:32  ID:VdUT2lLZ.net(4)
試しにやってみたけど最後の実行が出来なかったorz
もう寝る

416
名前は開発中のものです。[sage]   投稿日:2017/02/28 14:20:17  ID:9MuOvNLS.net(2)
Android版をタブレットのC4droidでやってみたけどライブラリの中でエラー吐くみたいだ
大量のエラー吐くからさっぱり分かんないや
"ANative_Activity_onCreate"が" android_native_app_glue.h "と衝突して多重宣言しているとかなんとかから始まってBulletやOgg周りで参照エラーが出てる

417
名前は開発中のものです。[sage]   投稿日:2017/03/05 18:50:00  ID:WYpdMPcL.net(2)
DrawLine関数の挙動がPCごとに違う?なんかサブのノーパソで動かすと下に1ドットずれる
両方Directxのバージョン11以降だからそこ辛味じゃないと思うんだけど…

418
名前は開発中のものです。[sage]   投稿日:2017/03/11 14:58:07  ID:4brvAqUP.net(2)
もう何年も前に、
ハードウェア描画は1ドットずれたりする場合があるだの
3Dのものを画面に映す(2Dに変換する)際に誤差が生じるだの
聞いたことあるけど、流石にそれは関係ないかしらね…

419
名前は開発中のものです。[sage]   投稿日:2017/03/16 07:40:17  ID:06c/uHW3.net(2)
座標の扱いはビデオカードごとに違うからね
古いオンボードだと0.5pxずれたりする

420
名前は開発中のものです。[sage]   投稿日:2017/03/19 15:23:34  ID:85gVo7Ly.net(2)
2dで影作るときってどうすればいいんだ
アルファ乗算の値下げながらDrawLineをずらして何本も描画していくのを思いついたけど絶対糞重くなるでしょ

421
名前は開発中のものです。[sage]   投稿日:2017/03/19 17:46:24  ID:McAdhrov.net(2)
影の形にこだわらなければいいんでないかい

422
名前は開発中のものです。[sage]   投稿日:2017/03/19 17:59:49  ID:iXKgNie2.net(2)
影ってどういう影なのか分からんけど
例えばスプライトのキャラに影つけるならキャラの形の白黒画像用意してDrawModiGraphで乗算合成とかじゃね

423
名前は開発中のものです。[sage]   投稿日:2017/03/20 14:37:04  ID:PJ3OOU/G.net(2)
スプライト底辺に黒い楕円置くだけやろ
それでアクションやマップ作成に支障が出るなら
潔く影なんて捨てる

424
名前は開発中のものです。[sage]   投稿日:2017/04/09 22:25:04  ID:Fu+0leN1.net(4)
マウスの入力についての質問です

マウスのサイドボタンの検出はDXライブラリではできないのでしょうか?
調べてみても、サイドボタンがXButton1とかXButton2と呼ばれていることしか得られませんでした

こう記述すればできるとか、DXライブラリ以外の実装方法があるとかあれば教えてください
よろしくお願いします

425
名前は開発中のものです。[sage]   投稿日:2017/04/09 22:43:19  ID:A8iwvjAh.net(2)
GetMouseInput()じゃダメなの?

426
名前は開発中のものです。[sage]   投稿日:2017/04/09 22:53:28  ID:Fu+0leN1.net(4)
>195
公式リファレンスを見ながらGetMouseInput()の引数を全部試しましたが、どれを使っても検出されませんでした
ブラウザでサイドボタンを使って戻る進むができてるので、自分のサイドボタンが壊れている可能性はないです

427
名前は開発中のものです。[sage]   投稿日:2017/04/09 23:58:01  ID:gIO/ILx4.net(2)
>196
http://dxlib.o.oo7.jp/function/dxfunc_input.html#R5N8
ここ見る限り、GetMouseInputで値取れないってことは
逆にマウスのサイドボタンがキーボードのフックで対処してるタイプかもしれない。
例えば、キーボードのBackSpaceで「戻る」、Shift+BackSpaceで「進む」を表現してるとか。

http://dxlib.o.oo7.jp/cgi/patiobbs/patio.cgi?mode=past&;no=2247
後は関数自体の使い方に問題があるかもしれないので
ここで管理人さんが掲示してる最初のソースコードを試してみるとか。
情報が古いので今も使えるかわからないけど。

428
194です[sage]   投稿日:2017/04/10 00:31:27  ID:Yp/MHnmL.net(2)
>197
ふたつのURLを見て試してみましたが検出されませんでした
さらにCheckHitKeyAll()も試してみましたが、これでもサイドボタンは検出されませんでした

ふたつ目のURLのように、もしかしたら実装されていない機能なのかもしれないです
DXライブラリ製作者さんの掲示板に質問・お願いしてみることにします

>195 >197 さん、どうもありがとうございました

429
194です[sage]   投稿日:2017/04/11 01:56:20  ID:upA/YOkc.net(2)
サイドボタンの検出の件ですが、無事解決しました
自分と同じようなことで悩んでいる/いた方のために書き残しておきます

簡単に言うと、サイドボタンの検出をするにはDXライブラリをバージョンアップする必要があるようです
以下のやり取りを見ていただければ、詳しいことが得られると思います

http://dxlib.o.oo7.jp/cgi/patiobbs/patio.cgi?mode=view&;no=4080

今回の質問に関わってくださった皆様、改めてありがとうございました

430
名前は開発中のものです。[sage]   投稿日:2017/04/12 01:50:35  ID:TuryebQE.net(4)
白地に(アンチエイリアスかかった)黒のアイコンを表示してるんですが
これの白地を別の色にすると白地前提のアンチエイリアスが汚くなってしまいます。
白地に黒アイコンのものにアルファブレンドをかけると今度は黒が薄く見えなくなってしまう。。
Dxライブラリの知識ではないかもしれませんが、これを解決する手法のヒントなどありますでしょうか?

431
名前は開発中のものです。[sage]   投稿日:2017/04/12 02:02:34  ID:TuryebQE.net(4)
ごめんなさい書いた直後に自己解決してしまった
やっぱりよく調べて書くべきですね・・・

432
名前は開発中のものです。[sage]   投稿日:2017/04/14 21:46:05  ID:bZxpbzr7.net(4)
DXライブラリに関連してるかどうかわかりませんが
わからないことを質問してみます。

ファイナルファンタジー14(以下、FF14と略)などのプロが開発したゲームを拝見するとロード時間が短いように感じます
例えばDXライブラリを使って約14,000KBぐらいのMP3ファイルをロードしてメモリに読み込むようにコードを書くと
MP3ファイルのロードが完了するまでにコンマ数秒のロード時間が発生します

ですが、FF14のタイトル画面でしばらく放置するとプロローグムービーが開始されるわけですが、
内容を見る限り明らかに容量の多いムービーファイルをロードして再生してるように見えるのですが、
実際、FF14のゲームを起動してタイトル画面に移行するまでの時間は僅かです

私からの質問は、大容量のファイルをロードする場合に
ロード時間を短く済ませるための技術です
DXライブラリでゲーム開発をしてるのでDXライブラリを使用してのお知恵を拝借したい

433
名前は開発中のものです。[sage]   投稿日:2017/04/14 22:21:37  ID:7sRUbSV9.net(4)
効果音ではなく曲を全部メモリにロードするのは間違ってる
ファイルサイズの大きい曲や動画は読み込みながら再生するのが基本
そうじゃないと100GBの動画とかメモリに入りきらないようなものは再生できない

434
名前は開発中のものです。[sage]   投稿日:2017/04/14 22:38:34  ID:bZxpbzr7.net(4)
なるほど、必ずしもメモリにロードしてから再生しなくてもいいという考え方なのか
直接HDDからファイルをメモリーにロードしながら再生(ストリーミング再生)するわけか、
俺は大容量のファイルを分割でメモリに読み込んで
1ループのロード時間を短くする方向で考えていた

435
名前は開発中のものです。[sage]   投稿日:2017/04/14 23:52:44  ID:7sRUbSV9.net(4)
分かりやすく例えると、oggとかmp4なんかはzipで圧縮したような形式だから
再生するために元のwavに解凍すると10倍〜100倍になる
メモリにロードするってことは、この巨大化したのを入れるってことだから
効果音のような小さなものでない限りは避けるべき

436
名前は開発中のものです。[sage]   投稿日:2017/04/15 01:19:09  ID:RtlOPePd.net(4)
ありがとう
おかげで疑問が解消されました

437
名前は開発中のものです。[sage]   投稿日:2017/04/15 03:44:15  ID:3FEYykSP.net(4)
あとはシングルスレッドの場合はどうしてもロード時に固まってしまうだろうから、マルチスレッドでロードを行うようにするのはどうだろうか?

438
名前は開発中のものです。[sage]   投稿日:2017/04/15 04:40:43  ID:RtlOPePd.net(4)
マルチスレッドということはC++11を扱うということですね
Core i7を乗せてるのでCore UPUに対応したゲーム開発も興味はあるが
技術的に敷居が少し高いので今はまだいいかな
最新のC++コンパイラも必要になるし
ゲームのプレイヤーがCore i7 や Core i5のCPUを乗せてないと威力は発揮されない

439
名前は開発中のものです。[age]   投稿日:2017/04/15 09:19:30  ID:+pklgBp/.net(4)
短い場合(メモリー上にwave展開しない)
SetCreateSoundDataType( DX_SOUNDDATATYPE_MEMPRESS );
長い場合(ストリーミング再生)
SetCreateSoundDataType( DX_SOUNDDATATYPE_FILE );
どちらか書く

440
名前は開発中のものです。[sage]   投稿日:2017/04/15 09:44:18  ID:+pklgBp/.net(4)
http://jgame.blog.fc2.com/
あんたこのブログの人やろ頑張りや

441
名前は開発中のものです。[sage]   投稿日:2017/04/15 09:52:16  ID:PBMOYWDr.net(2)
ちなみに画像や音声のマルチスレッド読み込みはDXライブラリ標準機能で
SetUseAsyncLoadFlag(TRUE)使えば簡単よ

442
名前は開発中のものです。[sage]   投稿日:2017/04/15 11:40:04  ID:3FEYykSP.net(4)
C++11とか使ってませんが、ロード画面作るときにマルチスレッドを使いました。
あくまでロード時に凍るのを防ぐために使用するのでCPUがどうとかは無いですよ。
process.hをインクルードしてResumeThreadさせるだけで実装できます。

443
名前は開発中のものです。[sage]   投稿日:2017/04/15 13:07:47  ID:poy2AG7G.net(2)
何故だろう、急に挙動が変わった。
sizeが0を返すからファイルが見付からない訳じゃないと思うのだけど。

void* readbin( char *filename)
{
int size ,rsize ,h;
char *ptr;

if ( size = FileRead_size( filename ) == -1 ) errmsg( NOTREAD ,filename );
ptr = (char*)malloc(size+1);
if ( h = FileRead_open( filename ) == 0 ) errmsg( NOTOPEN ,filename );
rsize=FileRead_read(ptr ,size ,h);
printfDx( "%s : %d/%d\n" ,filename ,size ,rsize );

FileRead_close( h);
return ptr;
}

444
名前は開発中のものです。[sage]   投稿日:2017/04/15 13:25:19  ID:JeCVIRaX.net(2)
> ptr = (char*)malloc(size+1);

この+1はなに?
本題とは関係ないけど

445
名前は開発中のものです。[sage]   投稿日:2017/04/15 14:44:24  ID:qT8WsIhy.net(2)
DXLib 知らずに覗いてるだけでどう挙動が変わったかわからんので >213 の疑問には答えられないが、
>214
おそらくファイルのく中身は表示などに使う文字列だという前提だと、
文字列の終端は NULL で止める必要があるのでその 1byte 分を余計に確保している。
(今どきのコンパイラは malloc での確保と同時に \0 埋めをしてくれるのかもしれないけどちょっと危ないな。)
readbin() という名前からして文字列と言っても中身はバイト列と推測できるので、
ファイルの中身には終端 NULL を入れずに記録しているんだろう。

446
213[sage]   投稿日:2017/04/15 15:14:07  ID:YQ+vHcvV.net(2)
+1は苦し紛れにあーだこーだいじる過程でダメ元で付加してみたのでした。
末端に不定の1バイトが付加されるので無駄な容量食いではありますが、危険という認識はありませんでした。
早急に削除します。
そして、自己解決しました。if文の連結順序を誤解していました。何故今まで動いていたんだ・・・。
if ( size = FileRead_size( filename ) == -1 ) errmsg( NOTREAD ,filename );
if ( h = FileRead_open( filename ) == 0 ) errmsg( NOTOPEN ,filename );
↑これは↓こうですね。
if ( (size = FileRead_size( filename )) == -1 ) errmsg( NOTREAD ,filename );
if ( (h = FileRead_open( filename )) == 0 ) errmsg( NOTOPEN ,filename );
お騒がせしました。

447
名前は開発中のものです。[sage]   投稿日:2017/04/18 20:45:54  ID:bJnkmQcY.net(2)
ホラーだ

448
名前は開発中のものです。[sage]   投稿日:2017/04/29 01:27:41  ID:/YvMYhCO.net(4)
DXライブラリはgifアニメーションを再生できないのでしょうか?
DXライブラリ以外ならgifアニメ再生できたりするのでしょうか?

「こう記述すればできる」など教えてください

449
名前は開発中のものです。[sage]   投稿日:2017/04/29 06:09:30  ID:SAAy66wJ.net(2)
gifをそのまま読み込んで表示はできなかったはず
連番画像に変換するか、もしくは動画にするかだな

450
名前は開発中のものです。[sage]   投稿日:2017/04/29 16:48:35  ID:/YvMYhCO.net(4)
>219

割とむつかしい事しなきゃ動画像は表現できないんですね・・・
爆発エフェクトとか魔法エフェクトとかgifで表現したかったんですが、少し億劫になってしまいました

回答ありがとうございました

451
名前は開発中のものです。[sage]   投稿日:2017/04/29 17:59:31  ID:xrI1QiYS.net(2)
LoadDivGraph使えば連番画像が配列に入るから簡単やで
っていうか簡単なエフェクトなら回転拡大縮小やブレンドパラメータの変更で表現できるんじゃない?

452
名前は開発中のものです。[sage]   投稿日:2017/04/29 18:40:06  ID:EkJNcx6r.net(2)
>218
一応C#版ならサンプル転がってるね
規制でurl貼れないけど検索すればすぐ見つかる
でも221が言うようにDivGraph系使った方が楽だと思う

453
名前は開発中のものです。[sage]   投稿日:2017/05/05 10:05:26
なるほど初期化とかのタイミングで一旦展開するのがエンジン的には普通なのか

454
名前は開発中のものです。[sage]   投稿日:2017/05/05 15:40:34
最初から専用形式化アニメGifくらいにしか出力できないツールとかでもない限り、
手間は大して変わらんだろうしな

455
名前は開発中のものです。[sage]   投稿日:2017/05/07 15:21:12
結局誰かが何処かで一所懸命動かしてるわけだしな

456
名前は開発中のものです。[sage]   投稿日:2017/05/09 08:34:24
アニメーション用の画像を一枚にまとめた後ってLoadDivGraphでもDrawRectGraphでもアニメーションにできるけど
どっちの方が軽いとかってあるのかな

457
名前は開発中のものです。[sage]   投稿日:2017/05/09 09:38:53
内部的にはほぼ同じ処理だと思う
どちらも一度のドローコールでまとめて描画するから速度はほとんど変わらないはず

458
名前は開発中のものです。[]   投稿日:2017/05/10 11:42:59
FOR-NEXT 10億回ループまとめw追加&補正その4w

DarkGDK(Core i7 4770K)..     1.7秒
DarkBASIC(Core i7 4770K).     1.8秒
JavaScript(CeleronG1820)     2.3秒
DarkGDK(CeleronG1820)..     2.3秒
DarkBASIC(CeleronG1820).    2.5秒
AGK ver1.0(CeleronG1820)..   33.0秒
H.S.P. 3.4(CeleronG1820).     126.0秒 (*1) *New!
JavaScript(PS4Slim).        130.0秒 (*2)
EZ-BASIC(PlayStation2).    227.0秒 (*3)
99BASIC(Core i7 4770K).    330.0秒
99BASIC(CeleronG1820).    463.0秒
プチコン3号(new 3DS LL).    673.0秒
プチコンmkII(new 3DS LL)  20300.0秒 (*4)
プチコンmkII(new 3DS LL)  20500.0秒 (*5)

(*1) H.S.P.、簡易インタープリター言語
(*2) CPUリソース割り当てが極端に少ないか、サブCPU担当と予想される
(*3) SCPH-90000、BASIC STUDIO パワフルゲーム工房、ループ分割
(*4) スケーリングあり、ループ回数を100分の1にして、計測結果に100を掛けたもの、ループ分割
(*5) スケーリングなし、ループ回数を100分の1にして、計測結果に100を掛けたもの、ループ分割

459
名前は開発中のものです。[sage]   投稿日:2017/05/10 15:05:35
最適化ですっ飛ばしてる可能性は?

460
名前は開発中のものです。[sage]   投稿日:2017/05/12 23:43:37
どうやら周回遅れの嵐がまた戻ってきたようだな

461
、だな []   投稿日:0000/00/00 00:00:00

462
名前は開発中のものです。[sage]   投稿日:2017/05/25 10:49:09  ID:EtJgGmd+.net(2)
DrawRotaGraphやDrawExtendGraphで画像を拡大するとかなりジャギジャギになってしまうんですけど拡縮のアルゴリズムを変更みたいなことはできないんでしょうかね?

463
名前は開発中のものです。[sage]   投稿日:2017/05/25 11:21:21  ID:yyfkJ8TD.net
SetDrawMode(DX_DRAWMODE_BILINEAR)

464
名前は開発中のものです。[sage]   投稿日:2017/05/25 12:32:57  ID:EtJgGmd+.net(2)
>232
リファレンスで確認したらまさにそのことが書いてありますね…
ありがとうございます

465
名前は開発中のものです。[]   投稿日:2017/05/26 00:14:22  ID:rlfOgZbA.net
>232
定数がラベル化されてて覚えたくないっぽい感じでいいなw

466
名前は開発中のものです。[]   投稿日:2017/05/26 01:39:42  ID:L1fgx/JI.net
ちょっと何言ってるかわかりませんね

467
名前は開発中のものです。[]   投稿日:2017/05/27 18:30:23  ID:XdDfcHqh.net(3)
初心者なんですけど、メインループ内で音声ファイルをboolフラグ使って再生すると、
音声ファイルが再生終了するまで全体の動きが止まってしまうんですけどこれどうやったら回避できますかね?

468
名前は開発中のものです。[]   投稿日:2017/05/27 18:52:38  ID:XdDfcHqh.net(3)
>236

if (collision == true) {
PlaySoundMem(Sound_Bar_Handle, DX_PLAYTYPE_NORMAL, TRUE);
collision = false;
StopSoundMem(Sound_Bar_Handle);


}
ちなみにこんな処理です

469
名前は開発中のものです。[sage]   投稿日:2017/05/27 20:33:09  ID:brkGgSz8.net
DX_PLAYTYPE_BACKじゃなかったっけ

470
名前は開発中のものです。[]   投稿日:2017/05/27 22:17:05  ID:XdDfcHqh.net(3)
>238
なんとまあ・・・
ありがとうございました
リファレンスしっかり見てから質問するようにします!

471
名前は開発中のものです。[sage]   投稿日:2017/05/29 02:06:45  ID:p1cVfpaJ.net
ヒカル TV出演「年間5億は稼ぐ勢いですね」
https://www.youtube.com/watch?v=G7qL6ftpets
第1回案件王ランキング!YouTuberで1番稼いでるのは誰だ!
https://www.youtube.com/watch?v=asF2wQ2xhjY&;t=61s
ユーチューバーの儲けのカラクリを徹底検証!
https://www.youtube.com/watch?v=FUSb4erJSXE&;t=504s
【給料公開】チャンネル登録者4万人突破記念!YouTuberの月収公開!
https://www.youtube.com/watch?v=Y7DAQ0RKilM&;t=326s
誰も言わないなら俺がYouTuberのギャラ相場を教えます
https://www.youtube.com/watch?v=E4q-vaQh2EQ&;t=118s
YouTuberになりたいのは馬鹿じゃない!YouTuberになる方法
https://www.youtube.com/watch?v=Fr0WXXZRMSQ

最高月収5000万円だとさ。年収じゃなくて「月収」な
おまえらもyoutubeに動画投稿したほうがいい
やろうと思えばスマホがあればできるぞ
最低2年はやらないとここまではいかないだろうけど才能とアイデアと
企画力と継続力があればが大儲けできる可能性がなくもない
まだまだ他の職種に比べれば競争率は低いからオススメ
顔出したくないならラファエルみたいに仮面つければいい

472
名前は開発中のものです。[sage]   投稿日:2017/06/08 10:48:04  ID:emR6NVdG.net
スマホ版にもゲームパッドの関数がある
なんだこれ

473
名前は開発中のものです。[sage]   投稿日:2017/06/08 21:06:56  ID:dElL6uGO.net
スマホ用ゲームパッドで使うんだろ

474
名前は開発中のものです。[sage]   投稿日:2017/06/09 09:39:03  ID:DE3YMeBF.net
UnityやUE4がある今日、DXライブラリで作るメリットってなんだろう?
自分、DXライブラリで開発したいなと思い色々と調べていたんですが、調べれば調べるほど、UnityやUEが出てきてちょっと悩み中です。

475
名前は開発中のものです。[sage]   投稿日:2017/06/09 14:11:39  ID:k1bCPNPm.net
PCが貧弱でUnityやUEだと重い、ぐらいかな
今から勉強するならあまりメリットは無いと思う

476
名前は開発中のものです。[sage]   投稿日:2017/06/09 15:55:37  ID:/AOIMXs3.net
>243
Unity, UE4 は作者からコードを引き離す方向で進化しているのに対して、
DXlib はガッツリコードを見せた上で分かりやすくという方向で、ある意味教育的なもの。
一度 DXlib で組めていれば GUI ツールでも中身がどう動いているか想像付くので
コードの内容もきっちり学びたければ無駄にはならないと思う。

477
名前は開発中のものです。[sage]   投稿日:2017/06/09 18:21:17  ID:SGYRsMDo.net
>243
俺の場合はVBで使えるからという理由だった

478
名前は開発中のものです。[sage]   投稿日:2017/06/11 14:59:07  ID:0zNsaXZ9.net
>243
こういう質問する奴はどうせUnity使うんだろw
Unityの方がグラ綺麗だし、アセットストアで何でも売ってる
ふんっ! せいぜいユニティちゃん使ってろよ
ちっとも全然まっっっったくうらやましくなんかねーからw

479
名前は開発中のものです。[]   投稿日:2017/06/12 03:41:17  ID:yK1l09Lv.net
SetCreateSoundDataType(DX_SOUNDDATATYPE_FILE);で音をストリーミング再生するよう設定してるのに
タスクマネージャでディスクの欄を見ていても殆ど0%から動きません
メモリ使用量は1GB→60MBになったのでちゃんとストリーミング再生にはなってると思います

ストリーミング再生はディスクに負荷がかかると思っていたんですが、最近のHDDだと特に問題無いんですか?

480
名前は開発中のものです。[]   投稿日:2017/06/12 12:43:11  ID:AYi3m4Li.net
無能ほど負荷とか並列化にこだわる法則

481
名前は開発中のものです。[]   投稿日:2017/06/12 15:21:18  ID:eyqFi/CQ.net
そら無能じゃなきゃこんな板来ないしこんなライブラリ使わんからな

482
名前は開発中のものです。[sage]   投稿日:2017/06/14 10:21:57  ID:v0unCno/.net
>242
スマホにパッドがあったのか
嬉しい気もするけど携行性を重視した端末にでかい周辺機器をつなぐって奇妙な発想だな

483
名前は開発中のものです。[]   投稿日:2017/06/14 10:43:34  ID:U2C2l7BT.net
今時の開発者は青歯も知らんのか

484
名前は開発中のものです。[sage]   投稿日:2017/06/14 18:41:50  ID:ZT9fgl64.net
パパパパパパッドでタブレットwwwwwwww

485
名前は開発中のものです。[sage]   投稿日:2017/06/14 21:02:14  ID:zAFWgH33.net
最近だとレイフォースがパッド対応で話題になってなかったっけ

486
名前は開発中のものです。[sage]   投稿日:2017/06/15 22:56:09  ID:LMseahLk.net(2)
ゲーム作りどころかプログラミング初心者です。

DXライブラリを用いてのゲーム製作を考えているのですが、C++の知識はどの程度必要になりますか?
C++の学習は早々に切り上げてゲーム製作のアルゴリズムやDXライブラリの使い方等を学習したほうがいいんですかね?

ちなみに今はC言語の苦C一通り終わらせて独習C++の半分くらいまでC++の学習を進めてます。

487
名前は開発中のものです。[sage]   投稿日:2017/06/15 23:41:14  ID:1b6ck/rE.net
わからないところが出てきたらC++の学習に戻ればいいんじゃない

488
名前は開発中のものです。[sage]   投稿日:2017/06/15 23:55:33  ID:LMseahLk.net(2)
>256
ではある程度C++について学んだ後はさっさとゲーム製作の学習に入っておkってことですかね?
ゲーム製作で必要になる主なC++知識って何なんでしょうか

489
名前は開発中のものです。[sage]   投稿日:2017/06/16 00:24:27  ID:O/SyLshJ.net
そんなものは無い
Cだけでもゲームは作れる

490
名前は開発中のものです。[sage]   投稿日:2017/06/16 01:33:12  ID:m1zHP4Hn.net(2)
>258
いやいやあんまりからかわないでくだしあ…
C++のクラスなんかの知識は必要だと聞いてます

491
名前は開発中のものです。[sage]   投稿日:2017/06/16 01:48:42  ID:cvFevhqX.net
いや要らないしそういう設計になってる

492
名前は開発中のものです。[sage]   投稿日:2017/06/16 08:22:53  ID:brlS6E6B.net
C++ってやや低級気味な言語だしオブジェクト指向なんかガン無視でフォートランみたいなコード書いても何も問題ない

493
名前は開発中のものです。[]   投稿日:2017/06/16 08:33:02  ID:SGqKL1uB.net
DXライブラリ使うならC++知らず、C言語の知識のみでも何とかなりそう

494
名前は開発中のものです。[sage]   投稿日:2017/06/16 09:52:41  ID:Pb7QpWU4.net
そもそもCで出来なくてC++で出来ることってクラス以外に何があるんだっけ

495
名前は開発中のものです。[sage]   投稿日:2017/06/16 12:01:13  ID:Ogq0H9i2.net
分かって使うなら C++ の方が便利機能があるのできれいなコードが書けることが多いけど
知らないで無理に C++ を使うととんでもないコードができるので、それなら素直に C で書いた方がいい。
あと C++ クラスでデータ管理していて DXLib に渡すときに無茶なキャストをかけるとかいらない操作をあれこれしそうな予感がする。
>261 が言ってるとおりコンパイラが C++ だとしても別に C++ の機能を無理に使う必要はないし、普通に C のコードが通る。

それを踏まえた上で C と C++ を比較するなら、
ゲームでもデータの格納、その操作が頻繁に起きるから C++ でクラスが使える点は非常に大きいと思う。
メモリ管理、文字列の扱い、ファイルなどの I/O 操作はどう考えても C++ が楽。
C++ だとループ処理もイテレータを使えるのが大きい。かなりすっきりする。
本当は例外が扱えるのも大きいけど DXLib 使うならライブラリ側の戻りを見とけばいいから余り問題はないか。

496
名前は開発中のものです。[]   投稿日:2017/06/16 15:08:58  ID:gDyvoaaV.net
  ●●●ケネディ大統★領は何故、死なねばなら★なかったのか?●●●
  http://jbbs.livedoor.jp/bbs/read.cgi/study/3729/1226114724/53

  この掲示板(万有サロン)に優秀な書き込みをして、総額148万円の賞金をゲット★しよう!(*^^)v
  http://jbbs.livedoor.jp/study/3729/ →リンクが不良なら★、検索窓に入★れる!

497
名前は開発中のものです。[sage]   投稿日:2017/06/16 21:05:08  ID:m1zHP4Hn.net(2)
>264
詳しい回答ありがたや…

C++の知識は正しく用いるなら便利だけど必須ではないという認識でよろしいですかね。
とりあえずC++のクラス全般について一通り学んだらDXライブラリとかゲームプログラムの勉強に入ろうと思います。
他の方も回答してくれた方ありがとうございました
また何かあったら質問するかもしれませんがその時はよろしくお願いします

498
名前は開発中のものです。[sage]   投稿日:2017/06/17 05:06:47  ID:ANL8I6I5.net
ジェネリック・プログラミング
処理の抽象化

デザインパターン

アルゴリズムによる計算量の見積もり。
N に比例する、線形探索をしない。
ハッシュ O(1)、2分探索 O(log N)

Boost

499
名前は開発中のものです。[]   投稿日:2017/06/17 18:30:16  ID:FgtAF55Q.net
>267
役に立たないとは言わないがプログラミング技術が好きな人向けで
ゲーム作る事と乖離してる

500
名前は開発中のものです。[sage]   投稿日:2017/06/17 18:45:10  ID:nFYpcEEx.net
計算量くらいは意識しないとまともなゲーム作れないだろ

501
名前は開発中のものです。[]   投稿日:2017/06/18 01:35:21  ID:PbdM1gWB.net
ループ条件分岐さえあれば組めないプログラムなんてないんやで

502
名前は開発中のものです。[sage]   投稿日:2017/06/18 04:57:30  ID:ml1ulS2M.net
職業プログラマじゃないんだから、まずは動くもんが作れればいいんだってば。
それで遅かったらもっと勉強していい方法見付ければいいわけで。

503
名前は開発中のものです。[sage]   投稿日:2017/06/18 19:05:08  ID:abC7Vm3t.net
個人製作レベルの小さなゲームだとオブジェクト指向の概念自体いらないっちゃいらないとは思う
でもわかりやすく作る武器としてC++を覚えたいなら
個人的な現状の感想を書いてみると

・いる
クラスとオブジェクト指向の概念、継承、包含、コンストラクタ、getterとsetterの概念、仮想関数(抽象クラス、多態性)

・いらないんじゃね?
テンプレート、演算子のオーバーロード、標準ライブラリ(std::vectorはあってもいいかも?)、多重継承

ゲーム作る上ではこんな文法より当たり判定とか回転とかのアルゴリズムの方がよっぽど大事ってのは思う

504
名前は開発中のものです。[]   投稿日:2017/06/18 20:43:53  ID:nanwc7sE.net
重要なのは何を作るか詳細な挙動やパラメータまで考えることだろ
技術的なことはいざとなったら誰かに相談すれば済む

505
名前は開発中のものです。[sage]   投稿日:2017/06/18 21:13:19  ID:LRmtmPIY.net
ゲームなら継承は超便利

506
名前は開発中のものです。[sage]   投稿日:2017/06/18 21:28:36  ID:j1fZdyvt.net
クラス(構造体+メンバ関数)と継承は知っといた方が得だと思う
std::vectorは超絶におすすめ
変なエラーやバグ(配列の不正アクセス)が無くなる

多態性とかテンプレートは、二作目作るとき等に勉強すると「こんな便利な方法があったのかー」と感動するし、理解しやすい

507
名前は開発中のものです。[sage]   投稿日:2017/06/18 22:07:10  ID:xRdxAyjX.net
>272
いる項目の半分くらいはまだ未習ですね…

当たり判定とか回転とかのアルゴリズムってどこで勉強すればいいんですかね?
定番の参考書みたいなのがあったりするんでしょうか

>275
クラスはある程度文法学習し終わりました
std::vectorはなんのことかさっぱりです

508
名前は開発中のものです。[sage]   投稿日:2017/06/18 23:14:19  ID:QSbBBvPO.net
当たり判定は別にいいんだけど本当に難しいのは判定後の反発、押し出し処理
いまだにメーカーごとに意見が分かれる部分

509
名前は開発中のものです。[sage]   投稿日:2017/06/19 00:02:59  ID:p2tfhpKK.net(2)
有名な物理エンジン使ってるゲームでも
めり込んでおかしな動きしてることあるからな

510
名前は開発中のものです。[sage]   投稿日:2017/06/19 11:28:36  ID:pl3YSaeH.net
>276
ゲームじゃvector一番使うべ

511
名前は開発中のものです。[sage]   投稿日:2017/06/19 16:14:57  ID:oi8Si/s0.net
>278
Colision detectionで一発解決

そう、unityならね(´・ω・`)

512
名前は開発中のものです。[sage]   投稿日:2017/06/19 17:51:36  ID:gZSjLbfM.net
>279
まじか
よくわからなくなってきたので中途半端でやめずにとりあえずC++を一通りやってからゲーム制作勉強します…

513
名前は開発中のものです。[sage]   投稿日:2017/06/19 19:03:22  ID:p2tfhpKK.net(2)

514
名前は開発中のものです。[sage]   投稿日:2017/06/20 10:12:50  ID:Usr/uqTE.net
いくらC++を勉強したところでDXライブラリはゲームエンジンとしての限界点が低いから
とくにグラが汚いから覚悟しておくことだ
最新の C++ 11 できっちり組んだとしても、遊ぶ人から「これレトロゲーム?」って言われる(笑)

515
名前は開発中のものです。[sage]   投稿日:2017/06/20 10:28:18  ID:39gfrlUT.net
素のシェーダを使えばそりゃ

516
名前は開発中のものです。[sage]   投稿日:2017/06/20 13:23:34  ID:T/7j0XdF.net
デフォのトゥーンは輪郭線が綺麗で好きだな
いくつかトゥーン作ったけど結局デフォに落ち着いた

517
名前は開発中のものです。[sage]   投稿日:2017/06/22 23:00:29  ID:2Sd5aLez.net
javaやC#の標準ライブラリですら
rectangleクラスのintersectで簡易当たり判定は楽にできるみたいなんだよね

思想の違いだとは思うがゲームライブラリならそれくらいあってもいいとは思った

518
名前は開発中のものです。[sage]   投稿日:2017/06/23 00:42:29  ID:IOEH1G7m.net
MFCにCRectクラスのIntersectRectがあるよ
まあしかし四角の当たり判定がないくらいで不便って言うのなら c# に乗り換えたほうがいいと思う
c++は全般的に使い勝手あまりよくないから

519
名前は開発中のものです。[sage]   投稿日:2017/06/23 07:01:41  ID:uGgDuqlH.net
そういえば3Dの衝突判定機能はいくつかあるけど2Dは無いんだな
更新情報
・スレッド一覧ページで過去ログのタイトル検索・一覧表示ができるようになりました(2016/1/20)
NGワード登録
登録する
スレッド内検索

ゲ製作技術板 タイトル検索

このスレッドが人気です(実況系)
NHK総合を常に実況し続けるスレ 135172 修正済み (253)NHK実況
タイガーマスクW 第三十七話「さらば虎よ」 ◆3 (571)テレ朝実況
ワールドプロレスリング (692)テレ朝実況
CDTV★3(修正) (618)TBS実況
7つの海を楽しもう!世界さまぁ〜リゾート part1 (848)TBS実況
有吉反省会 (804)NTV実況
【マターリ】タイガーマスクW 第三十七話「さらば虎よ」 ◆1 (454)テレ朝実況
さんまのお笑い向上委員★1 (834)フジ実況
このスレッドが人気です(ニュース系)
【国家戦略特区】安倍首相「獣医学部新設、全国展開を目指す」★18 (1001)ニュー速+
【国家戦略特区】安倍首相「獣医学部新設、全国展開を目指す」★19 (306)ニュー速+
【この、ハゲーーーっ!】自民党 豊田真由子衆議院議員が離党届を提出 ★72 (500)ニュー速+
【この、ハゲーーーっ!】自民党 豊田真由子衆議院議員が離党届を提出 ★71 (1001)ニュー速+
【国家戦略特区】安倍首相「獣医学部新設、全国展開を目指す」★17 (1001)ニュー速+
【この、ハゲーーーっ!】自民党 豊田真由子衆議院議員が離党届を提出 ★70 (1001)ニュー速+
【国家戦略特区】安倍首相「獣医学部新設、全国展開を目指す」★16 (1001)ニュー速+
【芸能】<「欅坂」発煙筒の男>「殺そうと思った」アイドルの名前あげ供述!ナイフ所持容疑で逮捕 (852)音楽・芸能ニュース
ゲ製作技術板の人気スレ
【3Dゲームエンジン】Unity質問スレッド29 (686)
製作者スレ SRPG Studio 24章 (537)
ゲーム作ってみた (88)
【ウディタ】WOLF RPGエディター 其の64 (796)
高校生3人がc言語初心者からゲーム作る (743)
自作ゲーム開発者たちのメンバー募集 (987)
RPGツクールMV総合 24作目 (338)
【3Dゲームエンジン】Unity総合スレッド30 (389)
ゆめにっきっぽいゲームを作るスレ 16部屋目 (677)
【SGB】smile game builder【スマビ】 2枚目 (805)
【UE4】Unreal Engine 4 初心者質問スレッド part3 (822)
【ウディタ】WOLF RPGエディター 其の63 (1012)
『Clickteam Fusion/Multimedia Fusion』 16 [無断転載禁止]&#169;2ch.net (950)
何となくスマホゲー作りたいワナビ (90)
【ウディタ】WOLF RPGエディター 其の62 (1029)
WOLF RPGエディター 質問スレ 其の10 (996)
ニート、無職、フリーターがゲームを作るスレ 22 (1443)
【ストア】ステマ業者の銭のタネ“登録料ビジネス”って?・技術板【stema】 (852)
糞スレ (80)
SRPG Studio 5章 (1043)
何一つ知識がない状態からゲームを作る (214)
ニィト・無色:フリィタァがゲーム制作するスレ (838)
個人製作ゲームはなぜ売れないのか Part.4 (121)
【3Dゲームエンジン】Unity 4 (997)
コンソールでモノポリー制作 (51)
【Spine】2Dボーンアニメツール【Sprite Studio】 (289)
ニート、無職、フリーターがゲームを作るスレ 32 (396)
『Clickteam Fusion/Multimedia Fusion』 15 (1012)
■自主製作ゲーム:開発状況報告スレVer1.3■ (232)
このサイトについて
このサイトは2ちゃんねるからデータを取得し、表示するサービスです。
画像のインライン表示機能について
画像のURLの後ろにある[画像をインライン表示]をクリックすると、URLの下に表示します。
表示される画像は横幅100pxに縮小されていて、クリックすると原寸で表示します。
このサイトの特徴
1)スレッド内検索ができます
2)レス(「>>1」など)のポップアップができます
3)不適切な言葉を含む投稿を表示しません
4)ページ内で画像を直接表示できます
5)2ch他スレッドへのリンクはタイトル・板名つきでリンクします
6)すっきりとしたデザインで表示します
7)最新スレや前スレをチェック・一覧表示します
8)NGワード機能の搭載でイヤな言葉が目に入りません
9)荒らしを自動チェックします
10)スレッド内・同一IDの書き込みだけ表示できます
11)レスの返事をレスされた発言の下に表示する「まとめビュー」が利用できます
12)シリーズ化したスレッドの一覧を表示します
13)最新のスレッドがある場合はお知らせします
削除について
こちらをご覧ください
機能要望について
現在機能要望受付中です。
問い合わせについて
こちらのページからどうぞ
広告


首都圏の方、ソフトバンク光オススメですよ


このサイトは2ch.scからデータを取得・表示しています。削除などについてはこちらをご覧ください。 アクセスモード:差分取得 - 新着書き込みなし(304)