DXライブラリ 総合スレッド その19 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2016/01/05(火) 23:44:29.77ID:fkNSYSkc
Cを習得した程度のスキルでも、ゲームのグラフィックを比較的容易に描画する事のできる、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

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

【関連スレ】
C/C++ゲーム製作総合スレッド Part7 [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/gamedev/1420939171/
ゲームプログラムなら俺に聞け32(c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1441693570/

●DXライブラリではなくDirectXの質問ならこっちへ
【C++】 DirectX初心者質問スレ Part39 【C】 [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1418438785/
2016/12/18(日) 18:47:26.76ID:w4mjhhpa
>> 147
たしかに、「抽象度とか設計」の質問と言った方が適切かもしれません。失礼しました
具体的にいえば、以下のイメージです

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

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

if (画像A.IsFadeInComplete()) {
// フェードイン終わった!
}
2016/12/18(日) 18:48:30.96ID:w4mjhhpa
■パターン2
if (ボタンが押されたら) {
グローバル変数B = true;
}

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

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

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

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

>>148
ご教授ありがとうございます。
何がバグの原因になるとか全然分からないので、大変参考になりました
2016/12/18(日) 18:53:42.88ID:w4mjhhpa
132 133 の書き込みを読むべきでした すみません……

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

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

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

} else {
  画像A.draw();
}
2016/12/18(日) 19:39:00.88ID:g4K5bJ5s
グローバル変数を使うかどうかとか
複数の状態を同時に実行できない問題をどうするかとかは別として
自分なら2の方向かなあ
2016/12/18(日) 20:00:49.02ID:oO1EoBtD
>>146,>>149-151
細かい点ですが、「フェードイン」とは、画像Aが透明な状態から徐々に濃く(明るく)なっていく処理をさしているのですか?
ボタンを押さないとフェードイン処理が始まらないみたいなんですが、
そもそもボタンを押してないと、画像A.draw()で何を描画してるんですか?

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

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

仕様がいまいちイメージできません
2016/12/18(日) 20:04:49.88ID:GrYJvN1j
あーでもグローバルじゃなくてブラシクラス作ればいいかも
2016/12/18(日) 20:08:44.65ID:oO1EoBtD
質問の意図は

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

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

でどっち?
みたいな話かと思ったけど、ちがうのか・・・
2016/12/18(日) 20:41:41.19ID:w4mjhhpa
>>153
ごめんなさい たしかにサンプルが不適切です
この場合だとフェードインではなく、フェードアウトになります
ボタン押したら、画像が消えていくみたいな
質問の意図に関しては 155で指摘されている通りです

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

ブラシクラスとなると、画像インスタンスを受け取って、内部情報を更新するという意味かな
2016/12/18(日) 21:01:52.62ID:w4mjhhpa
思った以上に反応があって、ちょっと焦ってました
156の「>>155」は、「>>152」が正しい

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

とりあえず方向性は見えてきたので、ありがとうございます
2016/12/18(日) 21:08:52.00ID:oO1EoBtD
流れがつかめませんが、解決したんですか

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

しかし・・・
確かに可読性が悪いとストレスの原因になるが、
可読性を確保する労力が新たなストレスと生むというジレンマ・・・
2016/12/18(日) 22:50:19.71ID:w4mjhhpa
>>158
混乱させてしまったようで、申し訳ないです
155の意図をやっと把握しました(訂正に訂正を重ねてホンマ……)

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

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

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

可読性に関しては、最近、可読性を確保するためのストレスに負け始めてます
重要なのは重々承知ですが、やはり面倒……
趣味なはずなのに、仕事と同様のストレスを感じる
2016/12/18(日) 23:01:17.32ID:oO1EoBtD
>>159
フェードアウトとフェードインの区別が困難になるほど、なにやら複雑な夢(野望、殺意)を秘めているみたいですね
お手柔らかにお願いします(笑)

ロベールさんのサイトによると、
inline関数は必ずしもinline展開されないみたいだけど、
誰か環境ごとに厳密に検証した人いるのかな?
自分はVC++の判断を信じてる!
2016/12/19(月) 00:31:54.60ID:HwJJ4Rji
例えば「マリオが死ぬと画面がフェードアウトして画面が切り替わる」
…という処理があるとして


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

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


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

そうなると、画面切替処理は独立させておいたほうが取り回しが良くなるのではないか?
というのがオイラの考える2のメリットかな。
2016/12/19(月) 16:22:26.13ID:9RjupL+U
状態に対して××モードと名前をつけて
上手くハマるならそれを使えばいいよ
2016/12/19(月) 23:36:24.22ID:ABRexmh1
>>161
わかりやすい例え、ありがとう
まさにそういう事例を想定していたので、とても参考になります

>>162
了解です
2017/01/08(日) 23:39:08.63ID:3fqQn8Jq
久しぶりにDXライブラリ使ってたんだけど、文字入力して変換しようとするとIMEの変換候補がゲームウィンドウの左下に表示される。
ちなみにGoogleIMEでは左下でMicrosoftIMEは右下。
昔触ったときは文字の入力した文字のすぐそばに表示されてた気がするんだけどWin10(Win8?)から仕様が変わったんだろうか。
ぐぐったらWin8でIMEウィンドウ自体が出ない不具合があってそれは解消されたようなんだが。
2017/01/13(金) 09:20:03.69ID:JxeCTkK7
文字入力といえば自作のアクションゲームで名前入力辞めマスタ
よーく考えるとユーザー自身しかしないだろうし
2017/01/13(金) 09:22:32.67ID:JxeCTkK7
キーのログをとってmovieみたいに再現できる機能も省略
今なら動画をとろうと思えばキャプチャソフトを使えばよいし

楽になった分、今度こそ完成に近づくと良いけど
167106
垢版 |
2017/01/17(火) 15:54:13.99ID:aj0DNk7d
スレに残しておきたいと感じた情報を書いておきます

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

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

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

以上、報告終わり
2017/01/29(日) 19:37:06.79ID:rdbqqXVO
>>167
SetDrawAreaを使うと連続描画が途切れるからね
2017/01/30(月) 18:28:11.60ID:2zIjyMmQ
Delayフレーム後にSoundHandleを指定の音量パン周波数で再生する
SoundEffect(int SoundHandle,int VolumePal,int PanPal,int FrequencyPal,int Delay)

こんな関数を作りたいんだけど実装方法が思いつかない
SetSoundCurrentTimeでマイナスの値を設定出来たら簡単なのに
2017/02/16(木) 01:43:45.04ID:vIVM03On
マイクから入力される音声のdBを
監視するアプリって作れますか?
171名前は開発中のものです。
垢版 |
2017/02/26(日) 02:54:28.23ID:NkbyLrdK
DX11対応の環境でサンプルプログラムをコンパイルし実行したらDX11で動いていましたが
この.exeをDX11非対応の環境で実行するとDX9などで動くんですか?

手元にDX11非対応の環境が無くて試せないんですが2Dゲーを作る分には特に気にしなくても大丈夫なんでしょうか
2017/02/26(日) 02:56:31.45ID:NkbyLrdK
sage忘れ失礼しました
2017/02/26(日) 04:39:50.74ID:cv+wlHl/
オリジナルシェーダ使ってなければ問題ないはず
2017/02/26(日) 11:18:23.14ID:SbF7UdV7
Android対応のDXライブラリが公開されたようだね
Unityやcocos2dと比べるとメリットがあまりないのがアレだけど
(DX11対応みたいに中途半端になりそうなところがまたね……)
2017/02/26(日) 11:24:07.56ID:SbF7UdV7
>>171
DX11でつくるのなら
DXライブラリは、DX11の機能のテッセレーションやジオメトリシェーダー
コンピュートシェーダーなど対応していないからあまりオススメしないぞい
2017/02/26(日) 18:26:14.24ID:w1YArNR6
android対応dxライブラリマジやがw
ちょっとスマホゲー作りたくなってきた・・・
2017/02/26(日) 23:50:04.99ID:UgWHSXy5
ゲームエンジンで実機デバックしてたから
VS2015の実機デバックがそのまま使える
DXライブラリのプログラムも実機でみれて楽しい
178名前は開発中のものです。
垢版 |
2017/02/27(月) 17:14:55.41ID:HzyfcOK5
Android対応まじだったw
前に誰かがcocos2dでやってたの使ってみたんだけど
まともに動かんかったから公式で対応してくれるのはでかい
帰ったら自作ゲームを移植してみよう
2017/02/27(月) 19:38:03.31ID:yzmBThPX
個人開発なのにそんなに手広くやって大丈夫なんだろか。
良い人である以上に人が良すぎてサポートで死にますよ。
2017/02/27(月) 19:49:51.98ID:LeUk6F53
OSSだしgithubで開発すれば良いのに
181名前は開発中のものです。
垢版 |
2017/02/27(月) 19:50:11.47ID:hCixZHbE
dxライブラリのあり方としての謎が深まる
2017/02/28(火) 00:19:17.26ID:VdUT2lLZ
つかVS2015がandroid対応していたことに驚き
2017/02/28(火) 01:06:31.48ID:kAgsABkj
今MSはマルチプラットフォームに必死だからね
Win10でBash使えるようにしたりLinuxにVisual Studioのコードエディタを公開したりと

1番驚いたのはThe Linux FoundationにMSが入った事だな
2017/02/28(火) 01:07:15.70ID:kAgsABkj
ごめんスペースだと思ってコピペしたのが文字化けしてる
The Linux Foundationね
2017/02/28(火) 01:27:32.13ID:VdUT2lLZ
試しにやってみたけど最後の実行が出来なかったorz
もう寝る
2017/02/28(火) 14:20:17.58ID:9MuOvNLS
Android版をタブレットのC4droidでやってみたけどライブラリの中でエラー吐くみたいだ
大量のエラー吐くからさっぱり分かんないや
"ANative_Activity_onCreate"が" android_native_app_glue.h "と衝突して多重宣言しているとかなんとかから始まってBulletやOgg周りで参照エラーが出てる
2017/03/05(日) 18:50:00.02ID:WYpdMPcL
DrawLine関数の挙動がPCごとに違う?なんかサブのノーパソで動かすと下に1ドットずれる
両方Directxのバージョン11以降だからそこ辛味じゃないと思うんだけど…
2017/03/11(土) 14:58:07.56ID:4brvAqUP
もう何年も前に、
ハードウェア描画は1ドットずれたりする場合があるだの
3Dのものを画面に映す(2Dに変換する)際に誤差が生じるだの
聞いたことあるけど、流石にそれは関係ないかしらね…
2017/03/16(木) 07:40:17.58ID:06c/uHW3
座標の扱いはビデオカードごとに違うからね
古いオンボードだと0.5pxずれたりする
2017/03/19(日) 15:23:34.43ID:85gVo7Ly
2dで影作るときってどうすればいいんだ
アルファ乗算の値下げながらDrawLineをずらして何本も描画していくのを思いついたけど絶対糞重くなるでしょ
2017/03/19(日) 17:46:24.06ID:McAdhrov
影の形にこだわらなければいいんでないかい
2017/03/19(日) 17:59:49.08ID:iXKgNie2
影ってどういう影なのか分からんけど
例えばスプライトのキャラに影つけるならキャラの形の白黒画像用意してDrawModiGraphで乗算合成とかじゃね
2017/03/20(月) 14:37:04.24ID:PJ3OOU/G
スプライト底辺に黒い楕円置くだけやろ
それでアクションやマップ作成に支障が出るなら
潔く影なんて捨てる
2017/04/09(日) 22:25:04.02ID:Fu+0leN1
マウスの入力についての質問です

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

こう記述すればできるとか、DXライブラリ以外の実装方法があるとかあれば教えてください
よろしくお願いします
2017/04/09(日) 22:43:19.29ID:A8iwvjAh
GetMouseInput()じゃダメなの?
2017/04/09(日) 22:53:28.69ID:Fu+0leN1
>>195
公式リファレンスを見ながらGetMouseInput()の引数を全部試しましたが、どれを使っても検出されませんでした
ブラウザでサイドボタンを使って戻る進むができてるので、自分のサイドボタンが壊れている可能性はないです
2017/04/09(日) 23:58:01.43ID:gIO/ILx4
>>196
ttp://dxlib.o.oo7.jp/function/dxfunc_input.html#R5N8
ここ見る限り、GetMouseInputで値取れないってことは
逆にマウスのサイドボタンがキーボードのフックで対処してるタイプかもしれない。
例えば、キーボードのBackSpaceで「戻る」、Shift+BackSpaceで「進む」を表現してるとか。

ttp://dxlib.o.oo7.jp/cgi/patiobbs/patio.cgi?mode=past&no=2247
後は関数自体の使い方に問題があるかもしれないので
ここで管理人さんが掲示してる最初のソースコードを試してみるとか。
情報が古いので今も使えるかわからないけど。
198194です
垢版 |
2017/04/10(月) 00:31:27.44ID:Yp/MHnmL
>>197
ふたつのURLを見て試してみましたが検出されませんでした
さらにCheckHitKeyAll()も試してみましたが、これでもサイドボタンは検出されませんでした

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

>>195 >>197 さん、どうもありがとうございました
199194です
垢版 |
2017/04/11(火) 01:56:20.31ID:upA/YOkc
サイドボタンの検出の件ですが、無事解決しました
自分と同じようなことで悩んでいる/いた方のために書き残しておきます

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

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

今回の質問に関わってくださった皆様、改めてありがとうございました
2017/04/12(水) 01:50:35.12ID:TuryebQE
白地に(アンチエイリアスかかった)黒のアイコンを表示してるんですが
これの白地を別の色にすると白地前提のアンチエイリアスが汚くなってしまいます。
白地に黒アイコンのものにアルファブレンドをかけると今度は黒が薄く見えなくなってしまう。。
Dxライブラリの知識ではないかもしれませんが、これを解決する手法のヒントなどありますでしょうか?
2017/04/12(水) 02:02:34.21ID:TuryebQE
ごめんなさい書いた直後に自己解決してしまった
やっぱりよく調べて書くべきですね・・・
2017/04/14(金) 21:46:05.15ID:bZxpbzr7
DXライブラリに関連してるかどうかわかりませんが
わからないことを質問してみます。

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

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

私からの質問は、大容量のファイルをロードする場合に
ロード時間を短く済ませるための技術です
DXライブラリでゲーム開発をしてるのでDXライブラリを使用してのお知恵を拝借したい
2017/04/14(金) 22:21:37.18ID:7sRUbSV9
効果音ではなく曲を全部メモリにロードするのは間違ってる
ファイルサイズの大きい曲や動画は読み込みながら再生するのが基本
そうじゃないと100GBの動画とかメモリに入りきらないようなものは再生できない
2017/04/14(金) 22:38:34.80ID:bZxpbzr7
なるほど、必ずしもメモリにロードしてから再生しなくてもいいという考え方なのか
直接HDDからファイルをメモリーにロードしながら再生(ストリーミング再生)するわけか、
俺は大容量のファイルを分割でメモリに読み込んで
1ループのロード時間を短くする方向で考えていた
2017/04/14(金) 23:52:44.66ID:7sRUbSV9
分かりやすく例えると、oggとかmp4なんかはzipで圧縮したような形式だから
再生するために元のwavに解凍すると10倍〜100倍になる
メモリにロードするってことは、この巨大化したのを入れるってことだから
効果音のような小さなものでない限りは避けるべき
2017/04/15(土) 01:19:09.73ID:RtlOPePd
ありがとう
おかげで疑問が解消されました
2017/04/15(土) 03:44:15.65ID:3FEYykSP
あとはシングルスレッドの場合はどうしてもロード時に固まってしまうだろうから、マルチスレッドでロードを行うようにするのはどうだろうか?
2017/04/15(土) 04:40:43.98ID:RtlOPePd
マルチスレッドということはC++11を扱うということですね
Core i7を乗せてるのでCore UPUに対応したゲーム開発も興味はあるが
技術的に敷居が少し高いので今はまだいいかな
最新のC++コンパイラも必要になるし
ゲームのプレイヤーがCore i7 や Core i5のCPUを乗せてないと威力は発揮されない
2017/04/15(土) 09:19:30.20ID:+pklgBp/
短い場合(メモリー上にwave展開しない)
SetCreateSoundDataType( DX_SOUNDDATATYPE_MEMPRESS );
長い場合(ストリーミング再生)
SetCreateSoundDataType( DX_SOUNDDATATYPE_FILE );
どちらか書く
2017/04/15(土) 09:44:18.23ID:+pklgBp/
http://jgame.blog.fc2.com/
あんたこのブログの人やろ頑張りや
2017/04/15(土) 09:52:16.21ID:PBMOYWDr
ちなみに画像や音声のマルチスレッド読み込みはDXライブラリ標準機能で
SetUseAsyncLoadFlag(TRUE)使えば簡単よ
2017/04/15(土) 11:40:04.16ID:3FEYykSP
C++11とか使ってませんが、ロード画面作るときにマルチスレッドを使いました。
あくまでロード時に凍るのを防ぐために使用するのでCPUがどうとかは無いですよ。
process.hをインクルードしてResumeThreadさせるだけで実装できます。
2017/04/15(土) 13:07:47.39ID:poy2AG7G
何故だろう、急に挙動が変わった。
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;
}
2017/04/15(土) 13:25:19.21ID:JeCVIRaX
> ptr = (char*)malloc(size+1);

この+1はなに?
本題とは関係ないけど
2017/04/15(土) 14:44:24.56ID:qT8WsIhy
DXLib 知らずに覗いてるだけでどう挙動が変わったかわからんので >>213 の疑問には答えられないが、
>>214
おそらくファイルのく中身は表示などに使う文字列だという前提だと、
文字列の終端は NULL で止める必要があるのでその 1byte 分を余計に確保している。
(今どきのコンパイラは malloc での確保と同時に \0 埋めをしてくれるのかもしれないけどちょっと危ないな。)
readbin() という名前からして文字列と言っても中身はバイト列と推測できるので、
ファイルの中身には終端 NULL を入れずに記録しているんだろう。
216213
垢版 |
2017/04/15(土) 15:14:07.66ID:YQ+vHcvV
+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 );
お騒がせしました。
2017/04/18(火) 20:45:54.94ID:bJnkmQcY
ホラーだ
2017/04/29(土) 01:27:41.32ID:/YvMYhCO
DXライブラリはgifアニメーションを再生できないのでしょうか?
DXライブラリ以外ならgifアニメ再生できたりするのでしょうか?

「こう記述すればできる」など教えてください
2017/04/29(土) 06:09:30.20ID:SAAy66wJ
gifをそのまま読み込んで表示はできなかったはず
連番画像に変換するか、もしくは動画にするかだな
2017/04/29(土) 16:48:35.10ID:/YvMYhCO
>>219

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

回答ありがとうございました
2017/04/29(土) 17:59:31.45ID:xrI1QiYS
LoadDivGraph使えば連番画像が配列に入るから簡単やで
っていうか簡単なエフェクトなら回転拡大縮小やブレンドパラメータの変更で表現できるんじゃない?
2017/04/29(土) 18:40:06.93ID:EkJNcx6r
>>218
一応C#版ならサンプル転がってるね
規制でurl貼れないけど検索すればすぐ見つかる
でも221が言うようにDivGraph系使った方が楽だと思う
2017/05/05(金) 10:05:26.44ID:NXBeyHLp
なるほど初期化とかのタイミングで一旦展開するのがエンジン的には普通なのか
2017/05/05(金) 15:40:34.37ID:yUv3bLae
最初から専用形式化アニメGifくらいにしか出力できないツールとかでもない限り、
手間は大して変わらんだろうしな
2017/05/07(日) 15:21:12.75ID:If6RMgU7
結局誰かが何処かで一所懸命動かしてるわけだしな
2017/05/09(火) 08:34:24.56ID:K1FQSBk+
アニメーション用の画像を一枚にまとめた後ってLoadDivGraphでもDrawRectGraphでもアニメーションにできるけど
どっちの方が軽いとかってあるのかな
2017/05/09(火) 09:38:53.90ID:2FI5hhgE
内部的にはほぼ同じ処理だと思う
どちらも一度のドローコールでまとめて描画するから速度はほとんど変わらないはず
228名前は開発中のものです。
垢版 |
2017/05/10(水) 11:42:59.61ID:/rFUV6kx
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を掛けたもの、ループ分割
2017/05/10(水) 15:05:35.39ID:AO63hxX7
最適化ですっ飛ばしてる可能性は?
2017/05/12(金) 23:43:37.67ID:6uV/zlUc
どうやら周回遅れの嵐がまた戻ってきたようだな
2017/05/25(木) 10:49:09.36ID:EtJgGmd+
DrawRotaGraphやDrawExtendGraphで画像を拡大するとかなりジャギジャギになってしまうんですけど拡縮のアルゴリズムを変更みたいなことはできないんでしょうかね?
2017/05/25(木) 11:21:21.11ID:yyfkJ8TD
SetDrawMode(DX_DRAWMODE_BILINEAR)
2017/05/25(木) 12:32:57.53ID:EtJgGmd+
>232
リファレンスで確認したらまさにそのことが書いてありますね…
ありがとうございます
234名前は開発中のものです。
垢版 |
2017/05/26(金) 00:14:22.05ID:rlfOgZbA
>>232
定数がラベル化されてて覚えたくないっぽい感じでいいなw
235名前は開発中のものです。
垢版 |
2017/05/26(金) 01:39:42.52ID:L1fgx/JI
ちょっと何言ってるかわかりませんね
236名前は開発中のものです。
垢版 |
2017/05/27(土) 18:30:23.12ID:XdDfcHqh
初心者なんですけど、メインループ内で音声ファイルをboolフラグ使って再生すると、
音声ファイルが再生終了するまで全体の動きが止まってしまうんですけどこれどうやったら回避できますかね?
237名前は開発中のものです。
垢版 |
2017/05/27(土) 18:52:38.31ID:XdDfcHqh
>>236

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


}
ちなみにこんな処理です
2017/05/27(土) 20:33:09.58ID:brkGgSz8
DX_PLAYTYPE_BACKじゃなかったっけ
239名前は開発中のものです。
垢版 |
2017/05/27(土) 22:17:05.92ID:XdDfcHqh
>>238
なんとまあ・・・
ありがとうございました
リファレンスしっかり見てから質問するようにします!
2017/05/29(月) 02:06:45.40ID:p1cVfpaJ
ヒカル 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年はやらないとここまではいかないだろうけど才能とアイデアと
企画力と継続力があればが大儲けできる可能性がなくもない
まだまだ他の職種に比べれば競争率は低いからオススメ
顔出したくないならラファエルみたいに仮面つければいい
2017/06/08(木) 10:48:04.41ID:emR6NVdG
スマホ版にもゲームパッドの関数がある
なんだこれ
2017/06/08(木) 21:06:56.21ID:dElL6uGO
スマホ用ゲームパッドで使うんだろ
2017/06/09(金) 09:39:03.45ID:DE3YMeBF
UnityやUE4がある今日、DXライブラリで作るメリットってなんだろう?
自分、DXライブラリで開発したいなと思い色々と調べていたんですが、調べれば調べるほど、UnityやUEが出てきてちょっと悩み中です。
2017/06/09(金) 14:11:39.94ID:k1bCPNPm
PCが貧弱でUnityやUEだと重い、ぐらいかな
今から勉強するならあまりメリットは無いと思う
2017/06/09(金) 15:55:37.40ID:/AOIMXs3
>>243
Unity, UE4 は作者からコードを引き離す方向で進化しているのに対して、
DXlib はガッツリコードを見せた上で分かりやすくという方向で、ある意味教育的なもの。
一度 DXlib で組めていれば GUI ツールでも中身がどう動いているか想像付くので
コードの内容もきっちり学びたければ無駄にはならないと思う。
2017/06/09(金) 18:21:17.93ID:SGYRsMDo
>>243
俺の場合はVBで使えるからという理由だった
2017/06/11(日) 14:59:07.03ID:0zNsaXZ9
>>243
こういう質問する奴はどうせUnity使うんだろw
Unityの方がグラ綺麗だし、アセットストアで何でも売ってる
ふんっ! せいぜいユニティちゃん使ってろよ
ちっとも全然まっっっったくうらやましくなんかねーからw
248名前は開発中のものです。
垢版 |
2017/06/12(月) 03:41:17.25ID:yK1l09Lv
SetCreateSoundDataType(DX_SOUNDDATATYPE_FILE);で音をストリーミング再生するよう設定してるのに
タスクマネージャでディスクの欄を見ていても殆ど0%から動きません
メモリ使用量は1GB→60MBになったのでちゃんとストリーミング再生にはなってると思います

ストリーミング再生はディスクに負荷がかかると思っていたんですが、最近のHDDだと特に問題無いんですか?
249名前は開発中のものです。
垢版 |
2017/06/12(月) 12:43:11.91ID:AYi3m4Li
無能ほど負荷とか並列化にこだわる法則
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況