[過去ログ] DXライブラリ 総合スレッド その19 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1: 2016/01/05(火)23:44 ID:fkNSYSkc(1/2) AAS
Cを習得した程度のスキルでも、ゲームのグラフィックを比較的容易に描画する事のできる、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。
【公式】
外部リンク:homepage2.nifty.com
【関連スレ】
省7
2: 2016/01/05(火)23:46 ID:fkNSYSkc(2/2) AAS
【前スレ】
DXライブラリ 総合スレッド その18
2chスレ:gamedev
【過去スレ】
01 2chスレ:gamedev
02 2chスレ:gamedev
03 2chスレ:gamedev
省14
3: 2016/01/06(水)02:07 ID:bl/881x8(1) AAS
埋め
4: 2016/01/06(水)04:35 ID:vkTt7kSt(1) AAS
DirectXを利用したゲーム開発のためのライブラリ「DXライブラリ」に脆弱性 - 窓の杜
外部リンク[html]:www.forest.impress.co.jp
5: 2016/01/06(水)09:50 ID:uUHWeNkD(1) AAS
すれたておつ〜
6: 2016/01/06(水)13:49 ID:vToozi2l(1) AAS
即死回避
7: 2016/01/06(水)21:48 ID:FPsnS4s5(1) AAS
リスポーンキル回避
8(1): 2016/01/06(水)22:07 ID:SNpTpPa+(1/2) AAS
char binadata[10000000]ってやったらエラーが出た
char binadata[9000000]だったら大丈夫だった
char binadata[10000000]でもグローバル変数だったら大丈夫だった
なんでグローバル変数だと大丈夫なん?
使うメモリの容量がローカル変数とグローバル変数では違うの?
9: 2016/01/06(水)22:27 ID:D/YIuxFU(1) AAS
ローカルメモリはスタックメモリに配置されるからって
大学でならわなかったかい?
10: 2016/01/06(水)23:21 ID:SNpTpPa+(2/2) AAS
はい、ならいませんでした
11: 2016/01/07(木)10:01 ID:Fegao3sZ(1) AAS
エラーってstack overflow?
初歩的すぎる
12: 2016/01/12(火)13:01 ID:edPYChEu(1) AAS
記憶域でのスタックと静的領域とヒープの3つを理解し
適切に使い分けられなければ
蹴り入れられても文句言えない
C言語入門からやり直すべきよ
13: 2016/01/24(日)15:52 ID:YuKcV9Os(1) AAS
やり直すというより、>>8は現在進行形のC入門者なんだと思う
14: 2016/01/25(月)17:48 ID:sajU6FWk(1/2) AAS
ttfファイルを読み込んで使ってるんだけど、あらかじめ同じフォントがインストールされているとサイズがおかしくなる
どうにかならない?
15: 2016/01/25(月)20:30 ID:sajU6FWk(2/2) AAS
LoadFontDataToHandle関数で解決しました
16: 2016/02/18(木)16:31 ID:hWOqPyim(1) AAS
今更だけどこれって
「ディーエックスライブラリ」?
「デラックスライブラリ」?
前者で読んでるけどどっちなんだ
17: 2016/02/18(木)18:15 ID:CD7aF1NM(1) AAS
もともと DirectX のDXだからディーエックスでいいんじゃない
18(2): 2016/02/18(木)19:31 ID:qySKf0j4(1/2) AAS
ここで聞いていいのか分かりませんが
14歳からはじめるC言語わくわくゲームプログラミング教室 Visual Studio 2013編のP105に
もし複数のキーが同時に押された場合、GetJoypadInputState関数は押されたキーを表す定
数を合計した数値を返します。たとえば←と↑が同時に押された場合、PAD_INPUT_LEFT(実
体は整数の2)とPAD_INPUT_UP(整数の8)の合計(つまり 10 )が返さます。キーを表す定数
には2進数で表すとビットが重ならない数値が割り当てられているので、合計してもキーを表す
ビットの状態は変わりません。
省18
19: 2016/02/18(木)20:15 ID:pY1Vnnd1(1) AAS
>>18
多分その書籍は「同時押ししても別々に認識できる」
というのを示したかっただけな感じがするので
実際の割当がどうなっているのかはあまり気にしなくていいと思います
あと、テンキーの数字と割当整数がそのまま対応しているわけではないです
20: 2016/02/18(木)21:30 ID:w6GurFPy(1) AAS
その数字のままだったら、2+4と6単体と区別つかないだろう
2進数慣れといたほうがいいよ
21: 2016/02/18(木)22:26 ID:qySKf0j4(2/2) AAS
皆さんありがとう
この部分の前後読んでもさっぱり分からないので
これ以上気にしないで先に進むことにします
この先具体例が出て来るかも知れませんしね
22: 2016/02/19(金)07:22 ID:g+RjjMNz(1) AAS
ビット演算調べて。
一桁目が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は
省6
23: 2016/02/19(金)17:10 ID:yVHYDmTr(1) AAS
こうして見てると、ビット演算を他人に教えるって結構大変そうだな
24(1): 2016/02/19(金)20:45 ID:9rsuXZwb(1) AAS
ビット演算の話なのか?
俺はてっきり
if( GetJoypadInputState( DX_INPUT_PAD1 ) & PAD_INPUT_UP )
みたいに識別子と論理積を使って判定するのではなく
if( GetJoypadInputState( DX_INPUT_PAD1 ) == 8 )
みたいにその数字で直接入力判定してるから、テンキーの割り当て整数を知りたい
っていう話をしているのかと思ったんだけど
25: 2016/02/20(土)10:04 ID:EkX5eIPD(1) AAS
わざわざそんなことするメリットなくね?
26: 2016/02/21(日)02:51 ID:M/Be+VbG(1/8) AAS
とりあえず、入力状態を調べる関数の返り値を2進表記文字列と10進表記文字列で対にして画面左上に表示するだけの簡単なアプリ作っても良いかと思う。
と、ここで気になって調べたら、2進文字列への変換は
Cはitoa←VCでしか使えない? 今回は使えるかな
C++はstd::bitset
簡単なはずなのに、簡単でない気がしてきた。
用途限定なら自作した方が楽な(学べる)気もする。
27: 2016/02/21(日)04:47 ID:M/Be+VbG(2/8) AAS
>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
省8
28: 2016/02/21(日)05:53 ID:M/Be+VbG(3/8) AAS
if(GetJoypadInputState(DX_INPUT_PAD1)&(PAD_INPUT_UP|PAD_INPUT_LEFT))
にしないと使えないね。
寝ます。
29: 2016/02/21(日)06:01 ID:M/Be+VbG(4/8) AAS
ごめんこれも使えなかった。
同時に押された判定はすこし長くなるな。
このままではどちらか片方押さた場合でも、、、
眠い。ほんと寝ます。
30: 2016/02/21(日)08:09 ID:M/Be+VbG(5/8) AAS
if(GetJoypadInputState(DX_INPUT_PAD1)&(PAD_INPUT_UP|PAD_INPUT_LEFT)==(PAD_INPUT_UP|PAD_INPUT_LEFT))
一つのキーチェックは!=0でいいけど
ボタン1|ボタン2|ボタン3
とか複数キーが押されているかのチェックの場合は駄目ですね。一つのキーが押されただけでも!=0を満たしてしまうから。
連投すいません。そして初級者以外の方、失礼しました。
31: 2016/02/21(日)08:25 ID:M/Be+VbG(6/8) AAS
if((GetJoypadInputState(DX_INPUT_PAD1)&(PAD_INPUT_UP|PAD_INPUT_LEFT))==(PAD_INPUT_UP|PAD_INPUT_LEFT))
すいません。もう一度だけ。
c 演算子 優先順位 で検索してください。
確か&(アドレスじゃない方)は==よりあとに評価された気がする。これはCの欠陥ではないのかとか書いてた書籍があった気がする。
不安だし、()はつけといたほうが良いと思う。
32: 24 2016/02/21(日)09:00 ID:Va9zPPiV(1/2) AAS
なぜ俺が適当に上げた例に対して
何レスにも渡って解りづらい解説をしているのだ・・・
というか肝心の>>18はもう居ないっぽいから
質問したかった内容自体がそこで合ってるのかわからんぞ
33(1): 2016/02/21(日)09:24 ID:M/Be+VbG(7/8) AAS
これでも簡単に書こうとしたのですけどね。
どの辺がわかりづらいですか?
簡単なことを簡単に書くのは難しいですね。
34(1): 2016/02/21(日)10:04 ID:Va9zPPiV(2/2) AAS
>>33
説明が長くなるほど要点をつかみづらくなるから
補足は少なく、説明の訂正は出ないようにして、
大事な部分だけ短く簡単に説明した方が初心者には理解しやすい
補足とかは質問者に求められたときだけ説明すればいいかと
35: 2016/02/21(日)11:11 ID:M/Be+VbG(8/8) AAS
>>34
了解です。
36: 2016/02/29(月)21:14 ID:QBvMTSC4(1) AAS
DXLibは初心者向けって聞くけど、シャープDXなどと何が違うの?
2Dゲームの場合。3Dなら素直にUnity使うし
37: 2016/02/29(月)23:23 ID:leqKH6jq(1) AAS
シャープDXってなんぞ。
初心者にオススメの1つではあるが、これで作られた市販ゲームもあるくらいには幅広いよ
38: 2016/03/01(火)05:56 ID:+UwmpDoJ(1) AAS
C言語で書きたくてwindowsAPI、グラフィックAPI触りたくない人向け
39: 2016/03/01(火)15:06 ID:YBHnpXlS(1) AAS
確かにC++ぽく作られてないのは嬉しい。
他の人のソースコードとかが解読しやすい。
40: 2016/03/02(水)02:56 ID:ObT9YhJL(1) AAS
俺もライブラリ作ってやるぜ!と意気込んで、
グラフィックと入力と音周りが出来たあたりで、DXライブラリで良いんじゃね?と気づいて戻ってくる感じ
41(1): 2016/03/10(木)14:06 ID:hKSGgP4O(1/2) AAS
キャラクターIDをソートする場合なんですけど
こういう場合はやっぱりバケットソート的なアルゴリズムが最速なのでしょうか?
条件
・10000体のキャラクターがいる(ID0〜ID9999)※ID0番は空欄扱いの時に使うので実質9999体
・それぞれのキャラクターはスコアを持ってる(とりうる値はunsigned charの0〜255)
・ソートする時はスコアの低い順に並べる
・スコアが同点ならIDが若い順に並べる
省16
42: 2016/03/10(木)14:23 ID:chbXq+m7(1) AAS
普通にクイックソートでいいのでは
ソート時間の比較
外部リンク[html]:www.ics.kagoshima-u.ac.jp
43(1): 2016/03/10(木)14:44 ID:w2U+RHTk(1/2) AAS
そもそも頻繁に呼び出すなら
いちいちソートしないでソート結果をずっと保持する。
オブジェクトの追加削除が頻繁なら、
ソートではなく、正しい位置に差し込むようにする。
44(1): 2016/03/10(木)14:44 ID:HzV85MQu(1) AAS
RPGなどのスクロールゲーは、描画可能画像(マップサイズ)を作ってそこに描画した後に、ウィンドウに描画すればいいのですか?
速度やメモリを考えると、やめた方がいいですかね
45: 2016/03/10(木)15:25 ID:hKSGgP4O(2/2) AAS
AA省
46: 2016/03/10(木)21:20 ID:w2U+RHTk(2/2) AAS
どっちも2,560,000ループだから変わらないね。
可読性なら、俺は45のほうが解りやすかった。
(というか45を読んでようやく41がなにをしたいのか解った)
スコアの変動幅が少ない(=順位の変動が少ない)なら、
スコアが変わるたびに前後のスコアと比較して入れ換えるやりかたでもいいかな
スコアが頻繁に変わるなら
数秒毎にまとめてquicksort
47: 2016/03/11(金)00:14 ID:0nAdN0wU(1) AAS
>>44
何が言いたいのか分からんが
ウィンドウより気持ち広めに描画すればいいんじゃないの?
48: 2016/04/22(金)20:37 ID:OBq0v7em(1) AAS
スマホ版DXライブラリ使ってみた人いる?
49: 2016/04/22(金)23:20 ID:SApaeOWl(1) AAS
純粋なc#でDXライブラリ作りたいと考えてる
50(1): 2016/04/23(土)15:51 ID:dvo5BuGI(1) AAS
フレームレートを上げてゲームの進行の高速化をしたいけどどうすればいいの?
setgraphmodeの第4引数に値をぶっこんでも何も起きん
51(1): 2016/04/23(土)21:52 ID:9QnQQ2rD(1/2) AAS
> 画面モードを設定する
> int SetGraphMode(int ScreenSizeX,int ScreenSizeY,int ColorBitDepth,int RefreshRate=60)
> 戻り値
> DX_CHANGESCREEN_OK 画面変更は成功した
> DX_CHANGESCREEN_RETURN 画面の変更は失敗し、元の画面モードに戻された
> DX_CHANGESCREEN_DEFAULT 画面の変更は失敗しデフォルトの画面モードに変更された
> DX_CHANGESCREEN_REFRESHNORMAL 画面の変更は成功したが、リフレッシュレートの変更は失敗した
省3
52(2): 2016/04/23(土)22:17 ID:kA71q19C(1) AAS
SetWaitVSyncFlag(FALSE)
53(2): 2016/04/23(土)23:16 ID:O3+kZkoe(1) AAS
ゲームループを秒間60回さなくても高速処理できちゃうの?
元より軽く作って、普段はウエイト入れてるだけにしないといけないんじゃないかな。
54(1): 2016/04/23(土)23:49 ID:9QnQQ2rD(2/2) AAS
>>53
何を疑問に思ったが知らんが、最初からそういう話じゃねぇの
55(1): 2016/04/24(日)08:09 ID:5496X3BE(1) AAS
>>52
thx。クソ速くなりました
しかしSetWaitVSyncFlagの変更はDxLib_Init前でないと利かないようです
起動中に進行速度を自由に調整したかったのですが難しそうです
56: 2016/04/24(日)09:15 ID:nXkxGb8d(1) AAS
いやだからフレーム管理方法なんて複数あるんだから
使い分ければいいじゃない
57: 2016/04/24(日)09:50 ID:joRVkrHg(1) AAS
>>55
頭はゲームの内容を考えることに使った方がいいと思います
58: 53 2016/04/26(火)22:34 ID:x+Gf6b1S(1) AAS
>>54
すいません、今自分で作っているモノが何をしても60フレームで安定しているものですから、逆の意味で頭を抱えていたんです。
で、>>52氏の教えに従いVSYNCを外したら2000前後を叩きだしたので、>>51氏の最後の隠しパラメータRefreshRate=60の意味が分かりました。
本当にありがとうございました状態ですm(_ _)m
初挑戦で5年ばかり仕様に気が付かないとか、ちょっと笑えます(^^;
59: 2016/05/04(水)00:59 ID:vZnLncWj(1) AAS
まあ使う機会があるかどうかは全く別の話だしなー
60(1): 2016/05/06(金)14:02 ID:l2ANUrOw(1/3) AAS
今更だけど、リフレッシュレート変えるのはアカンだろw
垂直同期もオフにすんなw
根元でフレーム間の時間経過を定数倍するとか、
更新処理を複数回呼ぶとかいろいろやり方あるだろが
61(1): 2016/05/06(金)14:26 ID:jbS1d0cx(1/2) AAS
>>60
一般に、60決め打ちとかのほうが
初心者には作りやすいと思うぜ
62(1): 2016/05/06(金)15:26 ID:l2ANUrOw(2/3) AAS
>>61
そういう原始的な作りでも更新処理を複数回呼べばいいだけだし・・・
まあ入門サイトにありがちな経過フレーム数を1とする可変更新方式はゴミなんで
さっさと止めたほうがいいと思うよ
63: 2016/05/06(金)19:13 ID:jbS1d0cx(2/2) AAS
固定するならタイマー管理なのかねぇ
最近は120Hzとかのモニタも珍しくないし
>入門サイトにありがちな経過フレーム数を1とする可変更新方式
どんなん?
64: 2016/05/06(金)21:28 ID:Grw/W8UC(1) AAS
俺も垂直同期切ってタイマー管理だな
75ヘルツのモニターで早送りになった経験があるから
65: 2016/05/06(金)22:18 ID:l2ANUrOw(3/3) AAS
固定更新のために垂直同期切ってタイマー管理はありだけど
ティアリングが気になったりしない?
>>62はちょっと分かりにくかったかな
要は垂直同期をとりながら更新をカウントしてるようなタイプね
メジャーなところだと龍神録とか
この方法は環境の違いを直接受けるし、その対処も醜くなるんだよ
66: 2016/05/07(土)01:18 ID:oS0WNQLp(1) AAS
固定にするなら、リフレッシュレート制御かテアリングか
どっちかを取るしかないんじゃないの?
>カウント
龍神録ちろっと見てみたけど分からんかった
単位時間あたりのループ回数をチェックして、それ超えそうになったらウェイト入れる感じ?
67: 50 2016/05/08(日)09:38 ID:y6rKy2Br(1) AAS
2フレームに一度スクリーンフリップをすることでゲームの進行速度が2倍になりました
ゲーム中に速度の変更がきくようになったので目的は達成し解決しました
68: 2016/05/11(水)22:20 ID:bMgn9LMw(1) AAS
外部リンク[html]:gameprogrammingpatterns.com
69: 2016/06/07(火)01:07 ID:hB66gw1M(1) AAS
垂直同期でやってるけど何故かFPSが59.9が多いんだよな
偶に60いくんだけど。龍神録のFPS管理は何故か57FPSになる
70(1): 2016/06/07(火)11:13 ID:AssHyOle(1) AAS
もともとNTSCの垂直同期って59.94Hzだけど
今のは完全に60Pなんかね
71(1): 2016/06/07(火)20:41 ID:wUcW1H+O(1) AAS
龍神録のところのプログラムって、垂直同期とタイマー待機を同時にやってた気がする
どっちかだけにするといいはず
72: 2016/06/08(水)16:24 ID:uqtESUHJ(1) AAS
>>70
だからか、東方だと60FPSが多いからなんでだと思ってた
>>71
龍神録のタイマー待機関数をSleepからWaitTimerにしたらいくらかマシになったけど
なぜか垂直同期を切ってFPS制御するより垂直同期とFPS制御を同時にやった方が軽くなった
73: 2016/06/21(火)16:36 ID:bN0TQeIa(1) AAS
LoadGraph等で同じ画像を複数回読み込んだときは、やはり同じ画像が複数個分メモリに展開されるのだろうか?
74: 2016/06/21(火)18:42 ID:YpRlukE1(1) AAS
うん
75: 2016/06/21(火)19:13 ID:2iYzZ5We(1) AAS
画像を改変したりして複数いるなら1回読み込んで、コピーするべき
HDD等からの読み込みは遅いから
76: 2016/07/20(水)18:57 ID:/hGHlgJA(1) AAS
垂直同期切ってもウィンドウモードだと60fpsになっちゃうんだけどこれどうにかならない?
77: 2016/07/21(木)02:55 ID:cqeRkCwh(1) AAS
垂直同期切れてないんじゃない?
78: 2016/08/03(水)16:59 ID:X+OZY+Fp(1) AAS
仮想関数の呼び出しが遅い
最初はDXlibと関係あるのかなーと思ったけどC++の仕様っぽい
みんなも気をつけろ
79: 2016/08/04(木)02:17 ID:SwoLOy80(1) AAS
自分も聞いたことあるけど、それがクリティカルになるって、
他のところがボトルネックになってたりしない?
あとは最適化オプションとかで何とかなりそうではあるが
80: 2016/08/04(木)18:34 ID:BM0zlQCD(1) AAS
関数の呼び出し速度が気になるようじゃ元々が問題だと思うんだけど
実際に通常関数を呼ぶのと速度的にはどれくらいの差なんだろう
81: 2016/08/05(金)17:45 ID:GXDTbL61(1) AAS
3Dモデルのボーンをプログラムで動かすときに、
・ボーンをワールド座標の特定の場所を向くようにしたい(カメラの注視のようにボーンを一点に向けたい)
・ボーンをワールド座標の特定の角度にしたい。例えば、ボーンを水平な角度にしたい
を行いたいのですが、
ボーンを動かすのは MV1SetFrameUserLocalMatrix でローカルの変換行列を指定する方法しかないですが
どうやればできますか?
上下前次1-新書関写板覧索設栞歴
あと 921 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.019s