X



DXライブラリ 総合スレッド その19 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
0001名前は開発中のものです。
垢版 |
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/
0002名前は開発中のものです。
垢版 |
2016/01/05(火) 23:46:42.08ID:fkNSYSkc
【前スレ】
DXライブラリ 総合スレッド その18
http://peace.2ch.net/test/read.cgi/gamedev/1399459468/

【過去スレ】
01 http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
02 http://pc11.2ch.net/test/read.cgi/gamedev/1224923873/
03 http://pc11.2ch.net/test/read.cgi/gamedev/1238429676/
04 http://pc11.2ch.net/test/read.cgi/gamedev/1249822550/
05 http://pc11.2ch.net/test/read.cgi/gamedev/1259912953/
06 http://hibari.2ch.net/test/read.cgi/gamedev/1267108154/
07 http://hibari.2ch.net/test/read.cgi/gamedev/1286180687/
08 http://hibari.2ch.net/test/read.cgi/gamedev/1301818631/
09 http://hibari.2ch.net/test/read.cgi/gamedev/1310904069/
10 http://hibari.2ch.net/test/read.cgi/gamedev/1313655495/
11 http://toro.2ch.net/test/read.cgi/gamedev/1322844235/
12 http://toro.2ch.net/test/read.cgi/gamedev/1330000532/
13 http://toro.2ch.net/test/read.cgi/gamedev/1339368894/
14 http://toro.2ch.net/test/read.cgi/gamedev/1350618178/
15 http://toro.2ch.net/test/read.cgi/gamedev/1364900066/
16 http://toro.2ch.net/test/read.cgi/gamedev/1372604225/
17 http://toro.2ch.net/test/read.cgi/gamedev/1383795645/
0008名前は開発中のものです。
垢版 |
2016/01/06(水) 22:07:03.62ID:SNpTpPa+
char binadata[10000000]ってやったらエラーが出た
char binadata[9000000]だったら大丈夫だった
char binadata[10000000]でもグローバル変数だったら大丈夫だった

なんでグローバル変数だと大丈夫なん?
使うメモリの容量がローカル変数とグローバル変数では違うの?
0009名前は開発中のものです。
垢版 |
2016/01/06(水) 22:27:40.57ID:D/YIuxFU
ローカルメモリはスタックメモリに配置されるからって
大学でならわなかったかい?
0012名前は開発中のものです。
垢版 |
2016/01/12(火) 13:01:35.36ID:edPYChEu
記憶域でのスタックと静的領域とヒープの3つを理解し
適切に使い分けられなければ
蹴り入れられても文句言えない

C言語入門からやり直すべきよ
0014名前は開発中のものです。
垢版 |
2016/01/25(月) 17:48:18.36ID:sajU6FWk
ttfファイルを読み込んで使ってるんだけど、あらかじめ同じフォントがインストールされているとサイズがおかしくなる
どうにかならない?
0016名前は開発中のものです。
垢版 |
2016/02/18(木) 16:31:02.58ID:hWOqPyim
今更だけどこれって
「ディーエックスライブラリ」?
「デラックスライブラリ」?
前者で読んでるけどどっちなんだ
0018名前は開発中のものです。
垢版 |
2016/02/18(木) 19:31:57.04ID:qySKf0j4
ここで聞いていいのか分かりませんが

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
になるんでしょうか?
0019名前は開発中のものです。
垢版 |
2016/02/18(木) 20:15:38.26ID:pY1Vnnd1
>>18
多分その書籍は「同時押ししても別々に認識できる」
というのを示したかっただけな感じがするので
実際の割当がどうなっているのかはあまり気にしなくていいと思います

あと、テンキーの数字と割当整数がそのまま対応しているわけではないです
0020名前は開発中のものです。
垢版 |
2016/02/18(木) 21:30:32.21ID:w6GurFPy
その数字のままだったら、2+4と6単体と区別つかないだろう
2進数慣れといたほうがいいよ
0021名前は開発中のものです。
垢版 |
2016/02/18(木) 22:26:00.43ID:qySKf0j4
皆さんありがとう
この部分の前後読んでもさっぱり分からないので
これ以上気にしないで先に進むことにします
この先具体例が出て来るかも知れませんしね
0022名前は開発中のものです。
垢版 |
2016/02/19(金) 07:22:42.85ID:g+RjjMNz
ビット演算調べて。
一桁目が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で。
0024名前は開発中のものです。
垢版 |
2016/02/19(金) 20:45:32.62ID:9rsuXZwb
ビット演算の話なのか?

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

if( GetJoypadInputState( DX_INPUT_PAD1 ) == 8 )
みたいにその数字で直接入力判定してるから、テンキーの割り当て整数を知りたい
っていう話をしているのかと思ったんだけど
0026名前は開発中のものです。
垢版 |
2016/02/21(日) 02:51:09.47ID:M/Be+VbG
とりあえず、入力状態を調べる関数の返り値を2進表記文字列と10進表記文字列で対にして画面左上に表示するだけの簡単なアプリ作っても良いかと思う。

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

簡単なはずなのに、簡単でない気がしてきた。
用途限定なら自作した方が楽な(学べる)気もする。
0027名前は開発中のものです。
垢版 |
2016/02/21(日) 04:47:37.86ID:M/Be+VbG
>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))
こういう例をあげてくれたほうが嬉しかったかな。
|を+にかえても思ったとおりに動作はするかも知れないが、それではいけないということ。
0028名前は開発中のものです。
垢版 |
2016/02/21(日) 05:53:09.79ID:M/Be+VbG
if(GetJoypadInputState(DX_INPUT_PAD1)&(PAD_INPUT_UP|PAD_INPUT_LEFT))
にしないと使えないね。

寝ます。
0029名前は開発中のものです。
垢版 |
2016/02/21(日) 06:01:12.59ID:M/Be+VbG
ごめんこれも使えなかった。
同時に押された判定はすこし長くなるな。
このままではどちらか片方押さた場合でも、、、
眠い。ほんと寝ます。
0030名前は開発中のものです。
垢版 |
2016/02/21(日) 08:09:43.06ID:M/Be+VbG
if(GetJoypadInputState(DX_INPUT_PAD1)&(PAD_INPUT_UP|PAD_INPUT_LEFT)==(PAD_INPUT_UP|PAD_INPUT_LEFT))
一つのキーチェックは!=0でいいけど
ボタン1|ボタン2|ボタン3
とか複数キーが押されているかのチェックの場合は駄目ですね。一つのキーが押されただけでも!=0を満たしてしまうから。
連投すいません。そして初級者以外の方、失礼しました。
0031名前は開発中のものです。
垢版 |
2016/02/21(日) 08:25:35.10ID:M/Be+VbG
if((GetJoypadInputState(DX_INPUT_PAD1)&(PAD_INPUT_UP|PAD_INPUT_LEFT))==(PAD_INPUT_UP|PAD_INPUT_LEFT))
すいません。もう一度だけ。
c 演算子 優先順位 で検索してください。
確か&(アドレスじゃない方)は==よりあとに評価された気がする。これはCの欠陥ではないのかとか書いてた書籍があった気がする。

不安だし、()はつけといたほうが良いと思う。
003224
垢版 |
2016/02/21(日) 09:00:22.20ID:Va9zPPiV
なぜ俺が適当に上げた例に対して
何レスにも渡って解りづらい解説をしているのだ・・・

というか肝心の>>18はもう居ないっぽいから
質問したかった内容自体がそこで合ってるのかわからんぞ
0033名前は開発中のものです。
垢版 |
2016/02/21(日) 09:24:49.20ID:M/Be+VbG
これでも簡単に書こうとしたのですけどね。
どの辺がわかりづらいですか?
簡単なことを簡単に書くのは難しいですね。
0034名前は開発中のものです。
垢版 |
2016/02/21(日) 10:04:32.36ID:Va9zPPiV
>>33
説明が長くなるほど要点をつかみづらくなるから
補足は少なく、説明の訂正は出ないようにして、
大事な部分だけ短く簡単に説明した方が初心者には理解しやすい

補足とかは質問者に求められたときだけ説明すればいいかと
0036名前は開発中のものです。
垢版 |
2016/02/29(月) 21:14:11.05ID:QBvMTSC4
DXLibは初心者向けって聞くけど、シャープDXなどと何が違うの?
2Dゲームの場合。3Dなら素直にUnity使うし
0037名前は開発中のものです。
垢版 |
2016/02/29(月) 23:23:38.33ID:leqKH6jq
シャープDXってなんぞ。
初心者にオススメの1つではあるが、これで作られた市販ゲームもあるくらいには幅広いよ
0039名前は開発中のものです。
垢版 |
2016/03/01(火) 15:06:45.22ID:YBHnpXlS
確かにC++ぽく作られてないのは嬉しい。
他の人のソースコードとかが解読しやすい。
0040名前は開発中のものです。
垢版 |
2016/03/02(水) 02:56:18.34ID:ObT9YhJL
俺もライブラリ作ってやるぜ!と意気込んで、
グラフィックと入力と音周りが出来たあたりで、DXライブラリで良いんじゃね?と気づいて戻ってくる感じ
0041名前は開発中のものです。
垢版 |
2016/03/10(木) 14:06:18.95ID:hKSGgP4O
キャラクター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メガくらい使うみたいですし
もっとスマートなやり方は無いものでしょうか?

ただ、かなり頻繁に呼ぶ処理なので最優先したいのは速度です
0043名前は開発中のものです。
垢版 |
2016/03/10(木) 14:44:23.96ID:w2U+RHTk
そもそも頻繁に呼び出すなら
いちいちソートしないでソート結果をずっと保持する。
オブジェクトの追加削除が頻繁なら、
ソートではなく、正しい位置に差し込むようにする。
0044名前は開発中のものです。
垢版 |
2016/03/10(木) 14:44:30.14ID:HzV85MQu
RPGなどのスクロールゲーは、描画可能画像(マップサイズ)を作ってそこに描画した後に、ウィンドウに描画すればいいのですか?
速度やメモリを考えると、やめた方がいいですかね
0045名前は開発中のものです。
垢版 |
2016/03/10(木) 15:25:16.50ID:hKSGgP4O
>>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++;
  }
 }
}
0046名前は開発中のものです。
垢版 |
2016/03/10(木) 21:20:58.41ID:w2U+RHTk
どっちも2,560,000ループだから変わらないね。
可読性なら、俺は45のほうが解りやすかった。
(というか45を読んでようやく41がなにをしたいのか解った)

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

スコアが頻繁に変わるなら
数秒毎にまとめてquicksort
0050名前は開発中のものです。
垢版 |
2016/04/23(土) 15:51:01.47ID:dvo5BuGI
フレームレートを上げてゲームの進行の高速化をしたいけどどうすればいいの?
setgraphmodeの第4引数に値をぶっこんでも何も起きん
0051名前は開発中のものです。
垢版 |
2016/04/23(土) 21:52:14.10ID:9QnQQ2rD
> 画面モードを設定する
> int SetGraphMode(int ScreenSizeX,int ScreenSizeY,int ColorBitDepth,int RefreshRate=60)

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

とりあえず戻り値の確認しとけ。
あとはフレーム管理をどうやってるかによると思う。
垂直同期に丸投げしないで自前でフレーム管理してるなんてオチは……流石にないか
0053名前は開発中のものです。
垢版 |
2016/04/23(土) 23:16:26.28ID:O3+kZkoe
 ゲームループを秒間60回さなくても高速処理できちゃうの?
 元より軽く作って、普段はウエイト入れてるだけにしないといけないんじゃないかな。
0055名前は開発中のものです。
垢版 |
2016/04/24(日) 08:09:36.09ID:5496X3BE
>>52
thx。クソ速くなりました
しかしSetWaitVSyncFlagの変更はDxLib_Init前でないと利かないようです
起動中に進行速度を自由に調整したかったのですが難しそうです
005853
垢版 |
2016/04/26(火) 22:34:03.08ID:x+Gf6b1S
>>54
 すいません、今自分で作っているモノが何をしても60フレームで安定しているものですから、逆の意味で頭を抱えていたんです。
 で、>>52氏の教えに従いVSYNCを外したら2000前後を叩きだしたので、>>51氏の最後の隠しパラメータRefreshRate=60の意味が分かりました。
 本当にありがとうございました状態ですm(_ _)m

 初挑戦で5年ばかり仕様に気が付かないとか、ちょっと笑えます(^^;
0060名前は開発中のものです。
垢版 |
2016/05/06(金) 14:02:59.70ID:l2ANUrOw
今更だけど、リフレッシュレート変えるのはアカンだろw
垂直同期もオフにすんなw
根元でフレーム間の時間経過を定数倍するとか、
更新処理を複数回呼ぶとかいろいろやり方あるだろが
0062名前は開発中のものです。
垢版 |
2016/05/06(金) 15:26:36.70ID:l2ANUrOw
>>61
そういう原始的な作りでも更新処理を複数回呼べばいいだけだし・・・
まあ入門サイトにありがちな経過フレーム数を1とする可変更新方式はゴミなんで
さっさと止めたほうがいいと思うよ
0063名前は開発中のものです。
垢版 |
2016/05/06(金) 19:13:13.73ID:jbS1d0cx
固定するならタイマー管理なのかねぇ
最近は120Hzとかのモニタも珍しくないし


>入門サイトにありがちな経過フレーム数を1とする可変更新方式
どんなん?
0064名前は開発中のものです。
垢版 |
2016/05/06(金) 21:28:30.41ID:Grw/W8UC
俺も垂直同期切ってタイマー管理だな
75ヘルツのモニターで早送りになった経験があるから
0065名前は開発中のものです。
垢版 |
2016/05/06(金) 22:18:18.35ID:l2ANUrOw
固定更新のために垂直同期切ってタイマー管理はありだけど
ティアリングが気になったりしない?

>>62はちょっと分かりにくかったかな
要は垂直同期をとりながら更新をカウントしてるようなタイプね
メジャーなところだと龍神録とか
この方法は環境の違いを直接受けるし、その対処も醜くなるんだよ
0066名前は開発中のものです。
垢版 |
2016/05/07(土) 01:18:08.48ID:oS0WNQLp
固定にするなら、リフレッシュレート制御かテアリングか
どっちかを取るしかないんじゃないの?

>カウント
龍神録ちろっと見てみたけど分からんかった
単位時間あたりのループ回数をチェックして、それ超えそうになったらウェイト入れる感じ?
006750
垢版 |
2016/05/08(日) 09:38:16.57ID:y6rKy2Br
2フレームに一度スクリーンフリップをすることでゲームの進行速度が2倍になりました
ゲーム中に速度の変更がきくようになったので目的は達成し解決しました
0069名前は開発中のものです。
垢版 |
2016/06/07(火) 01:07:55.74ID:hB66gw1M
垂直同期でやってるけど何故かFPSが59.9が多いんだよな
偶に60いくんだけど。龍神録のFPS管理は何故か57FPSになる
0071名前は開発中のものです。
垢版 |
2016/06/07(火) 20:41:15.55ID:wUcW1H+O
龍神録のところのプログラムって、垂直同期とタイマー待機を同時にやってた気がする
どっちかだけにするといいはず
0072名前は開発中のものです。
垢版 |
2016/06/08(水) 16:24:56.19ID:uqtESUHJ
>>70
だからか、東方だと60FPSが多いからなんでだと思ってた
>>71
龍神録のタイマー待機関数をSleepからWaitTimerにしたらいくらかマシになったけど
なぜか垂直同期を切ってFPS制御するより垂直同期とFPS制御を同時にやった方が軽くなった
0073名前は開発中のものです。
垢版 |
2016/06/21(火) 16:36:29.41ID:bN0TQeIa
LoadGraph等で同じ画像を複数回読み込んだときは、やはり同じ画像が複数個分メモリに展開されるのだろうか?
0075名前は開発中のものです。
垢版 |
2016/06/21(火) 19:13:04.10ID:2iYzZ5We
画像を改変したりして複数いるなら1回読み込んで、コピーするべき
HDD等からの読み込みは遅いから
0076名前は開発中のものです。
垢版 |
2016/07/20(水) 18:57:39.10ID:/hGHlgJA
垂直同期切ってもウィンドウモードだと60fpsになっちゃうんだけどこれどうにかならない?
0078名前は開発中のものです。
垢版 |
2016/08/03(水) 16:59:01.47ID:X+OZY+Fp
仮想関数の呼び出しが遅い
最初はDXlibと関係あるのかなーと思ったけどC++の仕様っぽい
みんなも気をつけろ
0079名前は開発中のものです。
垢版 |
2016/08/04(木) 02:17:02.01ID:SwoLOy80
自分も聞いたことあるけど、それがクリティカルになるって、
他のところがボトルネックになってたりしない?

あとは最適化オプションとかで何とかなりそうではあるが
0080名前は開発中のものです。
垢版 |
2016/08/04(木) 18:34:57.87ID:BM0zlQCD
関数の呼び出し速度が気になるようじゃ元々が問題だと思うんだけど
実際に通常関数を呼ぶのと速度的にはどれくらいの差なんだろう
0081名前は開発中のものです。
垢版 |
2016/08/05(金) 17:45:28.67ID:GXDTbL61
3Dモデルのボーンをプログラムで動かすときに、
・ボーンをワールド座標の特定の場所を向くようにしたい(カメラの注視のようにボーンを一点に向けたい)
・ボーンをワールド座標の特定の角度にしたい。例えば、ボーンを水平な角度にしたい
を行いたいのですが、
ボーンを動かすのは MV1SetFrameUserLocalMatrix でローカルの変換行列を指定する方法しかないですが
どうやればできますか?
0082名前は開発中のものです。
垢版 |
2016/08/07(日) 21:54:52.11ID:0nKMuJM/
プログラムをステップ実行したときに
DXライブラリのソースにステップインするにはどうやればできますか?
Visual Studio 2013使ってます
0083名前は開発中のものです。
垢版 |
2016/08/07(日) 22:00:00.73ID:0nKMuJM/
ちなみにDXライブラリのソースにステップインしたい理由は
エラーコードが-1しかなくて、何が原因かわからなくて調べるためです
たまに挙動不審になったときの調査もしたいです
0086名前は開発中のものです。
垢版 |
2016/08/08(月) 09:58:38.04ID:A5U2Nxs1
その方法も何もDXライブラリのソース公開されているからlibファイルの代わりにソースをプロジェクトに追加するだけやん
0088名前は開発中のものです。
垢版 |
2016/08/08(月) 10:03:39.19ID:YjIAwMDj
という風に、人によってやり方違うので
どんなに簡単でも手順は書いておいたほうが

それが質問した人の礼儀かと
レスしようとして自分とこで検証して回答しようとしたら
自己解決しましたの一言でしまってたりすること多いしねえ
0090名前は開発中のものです。
垢版 |
2016/08/12(金) 09:00:00.33ID:j8xGV0qx
DXライブラリは3Dモデルの大きさをセンチメートルで管理するのがいいのか?
メートルで管理してカメラの Near Clip を小さくするとアウトラインやZTestがおかしくなる
0092名前は開発中のものです。
垢版 |
2016/08/13(土) 08:56:44.42ID:kHkMVs63
Zバッファのビット深度を変更する関数があったような
デフォは16bitだから32bitとかにしてみては
0093名前は開発中のものです。
垢版 |
2016/08/13(土) 09:38:49.80ID:cO1Dtflu
>>90
俺も以前同じようなことで悩んだわ
Near Clipは破綻しない程度に大きな値をとる必要があるとのこと
俺の場合は1メートル〜数万キロのレンジで幅が広すぎて単位をどう弄ろうがZバッファの深度を深くしようがダメだったんで、
ここで教えてもらった「ワールド空間を複数の距離レンジに区切ってそれぞれを描画し最後に合成する」手法で切り抜けた
おかげでカメラが物体から5メートルまで寄ろうが1万キロ離れようがあまり問題はなくなった
ただし代償として描画処理の負荷は上がったけど・・・

>>92
SetZBufferBitDepthでZバッファの深度を変えられる
でも確か24ビットまでじゃなかったかな?
009490
垢版 |
2016/08/13(土) 10:22:48.53ID:MTyr6UWS
>>91-93
レスありがとうございます
SetZBufferBitDepthは簡単なのですぐに試してみます
「ワールド空間を複数の距離レンジに区切ってそれぞれを描画し最後に合成する」手法は
ちょっと簡単にはできなさそうですが、プロのゲームっぽいですね。すごい
0095名前は開発中のものです。
垢版 |
2016/08/13(土) 13:32:29.62ID:cO1Dtflu
>>94
方法さえ教えてもらえればそんなややこしい実装じゃなかったよ

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

みたいな感じ
継ぎ目がちょっと気になるという欠点があるらしいけど、俺の作ったプログラムでは大して問題にはならなかった
0097名前は開発中のものです。
垢版 |
2016/08/23(火) 06:56:44.62ID:8oK85pQf
 すいません。 初歩的なことを教えて下さい。
 DXライブラリを3.12aから3.16d(最新版)に昨日上げたのですが、以下の様なエラーが出ます。
エラー 1 error LNK1104: ファイル 'DxDrawFunc_vs2012_x86_d.lib' を開くことができません。

 丁度ドライブが一杯になったのでそれでファイル欠損起こしたのかと、整理して落としなおして
再インストールしても変わりません。 消さないでいた3.12aに戻せば正常にコンパイルできます。
 どんなポカミスが考えられるでしょうか。
0098名前は開発中のものです。
垢版 |
2016/08/23(火) 08:00:58.44ID:ZkV35hFb
DXライブラリのフォルダの下を 'DxDrawFunc_vs2012_x86_d.lib' で検索して、
そのフォルダがプロジェクトのプロパティの「リンカー」の中の
「追加のライブラリディレクトリ」に設定されているか確認してみたか?
設定してなかったら設定する
009997
垢版 |
2016/08/23(火) 10:52:44.72ID:8oK85pQf
 ありがとうございます。
 おっしゃるとおりでした。
 C/C++全般のインクルードディレクトリだけ変更してリンカ全般の追加を変更していなかったのが原因でした。
 これで総て正常終了できました。
 ありがとうございました。
010097
垢版 |
2016/09/16(金) 19:48:32.55ID:/GVguODS
DrawBox()って思った以上にコスト高なのね。
エディタ作っているのですが、マウスで指定範囲を決定するのに半透明のFilling=TRUEで
サイズが{400,200}程度になると追いついて来ないし。うちの環境だと。
まあ範囲が分かれば良いだけなので、非透明のFilling=FALSEにしましたが。
機能の根幹に必要な命令じゃなくて良かった・・・。
0102100
垢版 |
2016/09/17(土) 02:14:24.29ID:bU3etqlH
>>101
SetUse3DFlag()指定しなければデフォで使ってくれないの?
TRUEで明示してみたけどやっぱ重かった。
0103名前は開発中のものです。
垢版 |
2016/09/18(日) 05:02:11.08ID:/gg7FKD1
画面全体塗りつぶすのに毎フレーム使ったりするし重いわけないと思うがなぁ
最新版では試してないけど
0104100
垢版 |
2016/09/22(木) 22:23:47.41ID:j/yM3Z13
>>103
 すいません、DXライブラリは無罪でした。
 コード読み直していたら、離れた所から12回ループでDrawBox()してからScreenFlip()しておりました。
 そりゃ感覚とは結果が違うのも当たり前で。
 大変失礼しました・・・。
0105名前は開発中のものです。
垢版 |
2016/09/23(金) 11:02:39.00ID:grmg4z9F
        ∧∧       
       ヽ(・ω・)/   ズコー  
      \(.\ ノ
    、ハ,,、  ̄

まぁ原因判明してよかったね
0106名前は開発中のものです。
垢版 |
2016/09/26(月) 22:11:34.39ID:gS8npJwc
スーファミっぽくラスタースクロールの波うつようなあのぐにゃぐにゃした表現をしたいんだけれども
DrawRectGraphで一列ずつ描画するのと
SetDrawAreaで描画できる範囲を一列ずつ変更しながら描画するのと
どっちが早いんだろう
0107名前は開発中のものです。
垢版 |
2016/09/27(火) 07:34:39.52ID:6RU/4Se1
どっちもクソ遅そうな気が……
ラスタースクロールのシェーダー書くのがいいが、
シェーダーはDXライブラリではちょっと敷居が高くてプログラム難しそうなのな
ボーンを仕込んだポリゴンの板に画面の画像を貼り付けて、
ボーンでラスタースクロールふうにアニメーションさせるのが楽な気がする
0108名前は開発中のものです。
垢版 |
2016/09/27(火) 12:29:31.97ID:kk2kAC73
10年前のPCで動くSTG(弾は500発程度)で、640*480程度なら上から一行ずつ描画でも特に処理落ちしなかった
DrawRectGraph使った

今のハードなら余裕だと思う
0109名前は開発中のものです。
垢版 |
2016/10/04(火) 20:15:50.94ID:rnDdxDqG
SetLoopAreaTimePosSoundMem()

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

あと軽く検証しただけだけど再生中に指定しなおしても有効だったから
FF6のラスボス戦みたいに
イントロ‐Aメロ‐繋ぎ‐Bメロ‐繋ぎ‐Cメロ〜 みたいになってるファイルで
最初はAメロをループ、条件を満たしたら繋ぎを経由してBメロループに移行〜みたいな演出も簡単に出来る
0110名前は開発中のものです。
垢版 |
2016/10/04(火) 21:56:37.68ID:HgclvPkb
そんなのあったのか
最後まで行ったら途中から再生、ってのは
結構前からあったの覚えてるんだが
0111名前は開発中のものです。
垢版 |
2016/10/15(土) 11:32:13.14ID:NMxKtSgQ
試してないけど

アンドロイドでも

動くように

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

何処まで、動くのかな?
0112名前は開発中のものです。
垢版 |
2016/10/16(日) 19:58:12.00ID:ZsomXKa1
あらかじめ大きめのサイズの空っぽの画像をMakeScreenで用意しておくことの有用性に今頃気付いたぜ
これとDerivationGraphのコンビで作り直したらぐっと軽くなった
0114名前は開発中のものです。
垢版 |
2016/10/23(日) 23:02:40.45ID:t2BOiWAY
>>109
 使ってみたら、ほんとにスゴイですね。
 時代がCDDAやストリーミング再生になってもう無限ループは無理なのかなーとか思っていたのだけど。
 ただWAVEで成功したのでそのデータをMP3にしたら、上手く繋がらなくなっちゃった。
 もう少しデータの作り方工夫すれば上手く行くのだろうけど。
0115名前は開発中のものです。
垢版 |
2016/10/24(月) 06:53:24.03ID:YwSDnTaO
>>114
MP3はこの関数に限らずループの時に違和感が出ると言われてるから
たぶんMP3の仕様の問題もあると思う

ogg形式では上手くいったよ
ただ変換の時にビットレートを固定したファイルでしか検証してないから
可変ビットレートの方法で圧縮されたoggファイルで上手くいくかは未検証
0117名前は開発中のものです。
垢版 |
2016/10/24(月) 13:10:36.88ID:Y2gOrRK8
権利よりも仕様が問題だな
MP3は無音が挿入されたり余計なことされる場合が多いからゲームに使うようなもんじゃない

他の環境では手抜き実装でWindowsの再生機能に丸投げできるメリットがあるが、DXライブラリなら関係ないし
0120名前は開発中のものです。
垢版 |
2016/10/27(木) 15:57:58.01ID:HwaxCMEV
116の言う通りmp3はライセンス関係が危ないということで避けられoggが推奨されていた
仕様よりもこっちのほうが重大問題
ゲーム制作関係でmp3推奨というのは聞いたことがない
0121名前は開発中のものです。
垢版 |
2016/10/27(木) 17:43:02.40ID:rFz+rXeH
MP3登場時にはoggなんてなかったから
Wavよりファイルサイズの小さいMP3を推奨する風潮はあったと思うけど
0122名前は開発中のものです。
垢版 |
2016/10/27(木) 18:10:43.67ID:HwaxCMEV
ogg普及前はソフトウェアMIDIが多かった
もしmp3が主流だったと思う人がいたら、その人のいた界隈はライセンス関係の意識が薄かったんだよ
まぁ00年代前半まではそういう時期でもあったけど
0123名前は開発中のものです。
垢版 |
2016/10/27(木) 20:01:09.28ID:lueiMAyc
市販のゲームで5000本以上販売が課金の条件だったから、フリーゲームや小規模同人では普通に使われてたよ
0124名前は開発中のものです。
垢版 |
2016/10/27(木) 20:28:51.91ID:BuMiN4CL
制作中のゲームにはキャラの髪型や服や装備や小物を変えるキャラメイキング(着替え)の機能があって、
今はひとつのMV1ファイルにまとめておき、フレーム表示/非表示で切り替えてるのですが、
だんだんアイテムが増えてきてファイルが大きくなってしまったので
別の方法をとりたいのですが、
キャラメイキングや着替えを実装するのに何かいい方法ありませんか?
髪型や服や装備や小物ごとにXファイルでバラバラにしておいて、Xファイルをテキスト結合するのが
楽なのではないかと思っていますが、もっと良い方法ありませんか?
0125名前は開発中のものです。
垢版 |
2016/10/31(月) 19:03:23.01ID:X+KVjoNa
DXライブラリのユーザーが作ってるのって
2Dゲーと3Dゲーのどっちが多いんだろ?
俺は3Dには手が出せてないんだけど
0127名前は開発中のものです。
垢版 |
2016/11/01(火) 22:09:07.08ID:kJ7Uoghc
3Dは海外のゲームエンジンが無料化されてしまったので、
3Dゲーム制作者はそっちへ行ってしまった気がする
2Dだとどれもあんまり変わらない気がするが
0128名前は開発中のものです。
垢版 |
2016/11/01(火) 22:26:25.51ID:+8ot24fl
2Dも描画しかないDXライブラリよりもオブジェクト管理出来たりするエンジンに流れている気がする
0129名前は開発中のものです。
垢版 |
2016/11/02(水) 07:20:39.55ID:/aW+4m+D
全部コードに直書きする形でならなんとか自分の思う通りに作れるようになったとは思うんだけど
さすがに会話イベント一個追加したり、マップに壺一個追加しただけで再コンパイルする必要がある状況って
なんというか我ながらアホだよね

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

とりあえず思いついてるやり方は
セリフ表示とか効果音を鳴らすとかのイベント処理を担っている関数に番号振って引数の数を紐付けしておいて
イベントの内容を全部、関数の番号、引数の数、引数の数値…って数字だけのデータにして
そのデータを読み込んで、どの関数を呼び出し引数にはどんな数値を入れるかを判断して実行する関数を作り
イベントの内容を全部数値に置き換える方法なんですけど
0130名前は開発中のものです。
垢版 |
2016/11/02(水) 08:13:58.60ID:8LrVjVrS
>>129
自分でも気付いてる通り、基本原則はコードとリソースを分離すること。

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


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

各クラスの書き方、各ファイルの依存関係なんかを整頓することで、
ちょっと修正したくらいなら、長時間のビルドを要さなくなる。
0131名前は開発中のものです。
垢版 |
2016/11/02(水) 13:45:37.24ID:/aW+4m+D
大体の方向性はこんな感じでいいんだということであれば進めていきたいんですが
躊躇している理由が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);//最初の引数がしゃべるキャラ、最後のは吹き出しの形のタイプ指定
}
みたいに作ってるイベントの条件分岐の部分の外部への出力方法が思いつかないっていう問題点もあります

なんかこう、こんな低レベルな人間にもできる上手いやり方ありませんかね?
0133名前は開発中のものです。
垢版 |
2016/11/02(水) 15:11:48.53ID:C/+BZRXz
途中で書き込んでしまったけど、そういうわけでコード書くときは全角スペース使って見やすく書いて
0134名前は開発中のものです。
垢版 |
2016/11/02(水) 15:50:25.87ID:/aW+4m+D
if(itemstorage[itemid]<99){
  itemstorage[itemid]++;
  takarabakoOpenFlag[takaraID]=1;
}else{
  JISAKU_serihu(1,"これ以上持てない",0);//最初の引数がしゃべるキャラ、最後のは吹き出しの形のタイプ指定
}
複数行にまたがってる部分はここだけです
後は本当に変数に代入してるだけというか…
0135名前は開発中のものです。
垢版 |
2016/11/02(水) 15:53:23.25ID:22j5AZ4g
>>131
データにしやすいパターンやお約束のイベントだけをデータベース化して
特殊処理はそのままハードコートでいいんじゃねぇの
「これをデータ化したら本当に効率化されるのだろうか」と考えて
非効率になりそうだったらハードコートのまま
そんなことよりもっとプレイヤーから見て喜んでもらえることに意識を集中したほうがいい
0138名前は開発中のものです。
垢版 |
2016/11/09(水) 13:59:08.62ID:DtsDG8yY
3Dゲームでマウスをクリックした位置にある3Dモデルをできるだけ高速に取得したいのですが、
何かいい方法はありますか?
コリジョン(衝突判定)関数がありますが、当たり判定用のメッシュを用意しないといけないようなので
ちょっと手間がかかりすぎるのでできればもっと手軽な別の方法がいいですが
0140名前は開発中のものです。
垢版 |
2016/11/22(火) 19:00:44.40ID:4Lu6ZO/B
ちょっとウンコしてくる
0143名前は開発中のものです。
垢版 |
2016/12/10(土) 02:51:28.41ID:H338C5QI
しまった!お尻ふいてなかった
0146名前は開発中のものです。
垢版 |
2016/12/18(日) 01:11:06.45ID:w4mjhhpa
初歩的なことですが、
画像を描画する際の関数の仕様について迷っています

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

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

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

御存知の方いれば、ご教授頂けると嬉しいです
0147名前は開発中のものです。
垢版 |
2016/12/18(日) 17:01:06.63ID:g4K5bJ5s
関数の仕様と言うよりは、抽象度とか設計とかの話なのかな?

なんとなくは分かるけど誤解してるかもしれないんで
数行程度のサンプルソースを書いてくれると嬉しい
0149名前は開発中のものです。
垢版 |
2016/12/18(日) 18:47:26.76ID:w4mjhhpa
>> 147
たしかに、「抽象度とか設計」の質問と言った方が適切かもしれません。失礼しました
具体的にいえば、以下のイメージです

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

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

if (画像A.IsFadeInComplete()) {
// フェードイン終わった!
}
0150名前は開発中のものです。
垢版 |
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
ご教授ありがとうございます。
何がバグの原因になるとか全然分からないので、大変参考になりました
0151名前は開発中のものです。
垢版 |
2016/12/18(日) 18:53:42.88ID:w4mjhhpa
132 133 の書き込みを読むべきでした すみません……

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

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

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

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

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

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

仕様がいまいちイメージできません
0155名前は開発中のものです。
垢版 |
2016/12/18(日) 20:08:44.65ID:oO1EoBtD
質問の意図は

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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


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

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

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

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

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

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

以上、報告終わり
0169名前は開発中のものです。
垢版 |
2017/01/30(月) 18:28:11.60ID:2zIjyMmQ
Delayフレーム後にSoundHandleを指定の音量パン周波数で再生する
SoundEffect(int SoundHandle,int VolumePal,int PanPal,int FrequencyPal,int Delay)

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

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

1番驚いたのはThe&#160;Linux&#160;FoundationにMSが入った事だな
0186名前は開発中のものです。
垢版 |
2017/02/28(火) 14:20:17.58ID:9MuOvNLS
Android版をタブレットのC4droidでやってみたけどライブラリの中でエラー吐くみたいだ
大量のエラー吐くからさっぱり分かんないや
"ANative_Activity_onCreate"が" android_native_app_glue.h "と衝突して多重宣言しているとかなんとかから始まってBulletやOgg周りで参照エラーが出てる
0187名前は開発中のものです。
垢版 |
2017/03/05(日) 18:50:00.02ID:WYpdMPcL
DrawLine関数の挙動がPCごとに違う?なんかサブのノーパソで動かすと下に1ドットずれる
両方Directxのバージョン11以降だからそこ辛味じゃないと思うんだけど…
0188名前は開発中のものです。
垢版 |
2017/03/11(土) 14:58:07.56ID:4brvAqUP
もう何年も前に、
ハードウェア描画は1ドットずれたりする場合があるだの
3Dのものを画面に映す(2Dに変換する)際に誤差が生じるだの
聞いたことあるけど、流石にそれは関係ないかしらね…
0190名前は開発中のものです。
垢版 |
2017/03/19(日) 15:23:34.43ID:85gVo7Ly
2dで影作るときってどうすればいいんだ
アルファ乗算の値下げながらDrawLineをずらして何本も描画していくのを思いついたけど絶対糞重くなるでしょ
0192名前は開発中のものです。
垢版 |
2017/03/19(日) 17:59:49.08ID:iXKgNie2
影ってどういう影なのか分からんけど
例えばスプライトのキャラに影つけるならキャラの形の白黒画像用意してDrawModiGraphで乗算合成とかじゃね
0193名前は開発中のものです。
垢版 |
2017/03/20(月) 14:37:04.24ID:PJ3OOU/G
スプライト底辺に黒い楕円置くだけやろ
それでアクションやマップ作成に支障が出るなら
潔く影なんて捨てる
0194名前は開発中のものです。
垢版 |
2017/04/09(日) 22:25:04.02ID:Fu+0leN1
マウスの入力についての質問です

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

こう記述すればできるとか、DXライブラリ以外の実装方法があるとかあれば教えてください
よろしくお願いします
0196名前は開発中のものです。
垢版 |
2017/04/09(日) 22:53:28.69ID:Fu+0leN1
>>195
公式リファレンスを見ながらGetMouseInput()の引数を全部試しましたが、どれを使っても検出されませんでした
ブラウザでサイドボタンを使って戻る進むができてるので、自分のサイドボタンが壊れている可能性はないです
0197名前は開発中のものです。
垢版 |
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
後は関数自体の使い方に問題があるかもしれないので
ここで管理人さんが掲示してる最初のソースコードを試してみるとか。
情報が古いので今も使えるかわからないけど。
0198194です
垢版 |
2017/04/10(月) 00:31:27.44ID:Yp/MHnmL
>>197
ふたつのURLを見て試してみましたが検出されませんでした
さらにCheckHitKeyAll()も試してみましたが、これでもサイドボタンは検出されませんでした

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

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

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

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

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

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

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

私からの質問は、大容量のファイルをロードする場合に
ロード時間を短く済ませるための技術です
DXライブラリでゲーム開発をしてるのでDXライブラリを使用してのお知恵を拝借したい
0203名前は開発中のものです。
垢版 |
2017/04/14(金) 22:21:37.18ID:7sRUbSV9
効果音ではなく曲を全部メモリにロードするのは間違ってる
ファイルサイズの大きい曲や動画は読み込みながら再生するのが基本
そうじゃないと100GBの動画とかメモリに入りきらないようなものは再生できない
0204名前は開発中のものです。
垢版 |
2017/04/14(金) 22:38:34.80ID:bZxpbzr7
なるほど、必ずしもメモリにロードしてから再生しなくてもいいという考え方なのか
直接HDDからファイルをメモリーにロードしながら再生(ストリーミング再生)するわけか、
俺は大容量のファイルを分割でメモリに読み込んで
1ループのロード時間を短くする方向で考えていた
0205名前は開発中のものです。
垢版 |
2017/04/14(金) 23:52:44.66ID:7sRUbSV9
分かりやすく例えると、oggとかmp4なんかはzipで圧縮したような形式だから
再生するために元のwavに解凍すると10倍〜100倍になる
メモリにロードするってことは、この巨大化したのを入れるってことだから
効果音のような小さなものでない限りは避けるべき
0207名前は開発中のものです。
垢版 |
2017/04/15(土) 03:44:15.65ID:3FEYykSP
あとはシングルスレッドの場合はどうしてもロード時に固まってしまうだろうから、マルチスレッドでロードを行うようにするのはどうだろうか?
0208名前は開発中のものです。
垢版 |
2017/04/15(土) 04:40:43.98ID:RtlOPePd
マルチスレッドということはC++11を扱うということですね
Core i7を乗せてるのでCore UPUに対応したゲーム開発も興味はあるが
技術的に敷居が少し高いので今はまだいいかな
最新のC++コンパイラも必要になるし
ゲームのプレイヤーがCore i7 や Core i5のCPUを乗せてないと威力は発揮されない
0209名前は開発中のものです。
垢版 |
2017/04/15(土) 09:19:30.20ID:+pklgBp/
短い場合(メモリー上にwave展開しない)
SetCreateSoundDataType( DX_SOUNDDATATYPE_MEMPRESS );
長い場合(ストリーミング再生)
SetCreateSoundDataType( DX_SOUNDDATATYPE_FILE );
どちらか書く
0211名前は開発中のものです。
垢版 |
2017/04/15(土) 09:52:16.21ID:PBMOYWDr
ちなみに画像や音声のマルチスレッド読み込みはDXライブラリ標準機能で
SetUseAsyncLoadFlag(TRUE)使えば簡単よ
0212名前は開発中のものです。
垢版 |
2017/04/15(土) 11:40:04.16ID:3FEYykSP
C++11とか使ってませんが、ロード画面作るときにマルチスレッドを使いました。
あくまでロード時に凍るのを防ぐために使用するのでCPUがどうとかは無いですよ。
process.hをインクルードしてResumeThreadさせるだけで実装できます。
0213名前は開発中のものです。
垢版 |
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;
}
0215名前は開発中のものです。
垢版 |
2017/04/15(土) 14:44:24.56ID:qT8WsIhy
DXLib 知らずに覗いてるだけでどう挙動が変わったかわからんので >>213 の疑問には答えられないが、
>>214
おそらくファイルのく中身は表示などに使う文字列だという前提だと、
文字列の終端は NULL で止める必要があるのでその 1byte 分を余計に確保している。
(今どきのコンパイラは malloc での確保と同時に \0 埋めをしてくれるのかもしれないけどちょっと危ないな。)
readbin() という名前からして文字列と言っても中身はバイト列と推測できるので、
ファイルの中身には終端 NULL を入れずに記録しているんだろう。
0216213
垢版 |
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 );
お騒がせしました。
0218名前は開発中のものです。
垢版 |
2017/04/29(土) 01:27:41.32ID:/YvMYhCO
DXライブラリはgifアニメーションを再生できないのでしょうか?
DXライブラリ以外ならgifアニメ再生できたりするのでしょうか?

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

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

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


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

ストリーミング再生はディスクに負荷がかかると思っていたんですが、最近のHDDだと特に問題無いんですか?
0249名前は開発中のものです。
垢版 |
2017/06/12(月) 12:43:11.91ID:AYi3m4Li
無能ほど負荷とか並列化にこだわる法則
0250名前は開発中のものです。
垢版 |
2017/06/12(月) 15:21:18.37ID:eyqFi/CQ
そら無能じゃなきゃこんな板来ないしこんなライブラリ使わんからな
0251名前は開発中のものです。
垢版 |
2017/06/14(水) 10:21:57.41ID:v0unCno/
>>242
スマホにパッドがあったのか
嬉しい気もするけど携行性を重視した端末にでかい周辺機器をつなぐって奇妙な発想だな
0252名前は開発中のものです。
垢版 |
2017/06/14(水) 10:43:34.66ID:U2C2l7BT
今時の開発者は青歯も知らんのか
0255名前は開発中のものです。
垢版 |
2017/06/15(木) 22:56:09.32ID:LMseahLk
ゲーム作りどころかプログラミング初心者です。

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

ちなみに今はC言語の苦C一通り終わらせて独習C++の半分くらいまでC++の学習を進めてます。
0257名前は開発中のものです。
垢版 |
2017/06/15(木) 23:55:33.06ID:LMseahLk
>>256
ではある程度C++について学んだ後はさっさとゲーム製作の学習に入っておkってことですかね?
ゲーム製作で必要になる主なC++知識って何なんでしょうか
0261名前は開発中のものです。
垢版 |
2017/06/16(金) 08:22:53.08ID:brlS6E6B
C++ってやや低級気味な言語だしオブジェクト指向なんかガン無視でフォートランみたいなコード書いても何も問題ない
0262名前は開発中のものです。
垢版 |
2017/06/16(金) 08:33:02.27ID:SGqKL1uB
DXライブラリ使うならC++知らず、C言語の知識のみでも何とかなりそう
0264名前は開発中のものです。
垢版 |
2017/06/16(金) 12:01:13.26ID:Ogq0H9i2
分かって使うなら C++ の方が便利機能があるのできれいなコードが書けることが多いけど
知らないで無理に C++ を使うととんでもないコードができるので、それなら素直に C で書いた方がいい。
あと C++ クラスでデータ管理していて DXLib に渡すときに無茶なキャストをかけるとかいらない操作をあれこれしそうな予感がする。
>>261 が言ってるとおりコンパイラが C++ だとしても別に C++ の機能を無理に使う必要はないし、普通に C のコードが通る。

それを踏まえた上で C と C++ を比較するなら、
ゲームでもデータの格納、その操作が頻繁に起きるから C++ でクラスが使える点は非常に大きいと思う。
メモリ管理、文字列の扱い、ファイルなどの I/O 操作はどう考えても C++ が楽。
C++ だとループ処理もイテレータを使えるのが大きい。かなりすっきりする。
本当は例外が扱えるのも大きいけど DXLib 使うならライブラリ側の戻りを見とけばいいから余り問題はないか。
0266名前は開発中のものです。
垢版 |
2017/06/16(金) 21:05:08.34ID:m1zHP4Hn
>>264
詳しい回答ありがたや…

C++の知識は正しく用いるなら便利だけど必須ではないという認識でよろしいですかね。
とりあえずC++のクラス全般について一通り学んだらDXライブラリとかゲームプログラムの勉強に入ろうと思います。
他の方も回答してくれた方ありがとうございました
また何かあったら質問するかもしれませんがその時はよろしくお願いします
0267名前は開発中のものです。
垢版 |
2017/06/17(土) 05:06:47.45ID:ANL8I6I5
ジェネリック・プログラミング
処理の抽象化

デザインパターン

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

Boost
0268名前は開発中のものです。
垢版 |
2017/06/17(土) 18:30:16.74ID:FgtAF55Q
>>267
役に立たないとは言わないがプログラミング技術が好きな人向けで
ゲーム作る事と乖離してる
0270名前は開発中のものです。
垢版 |
2017/06/18(日) 01:35:21.10ID:PbdM1gWB
ループ条件分岐さえあれば組めないプログラムなんてないんやで
0271名前は開発中のものです。
垢版 |
2017/06/18(日) 04:57:30.53ID:ml1ulS2M
職業プログラマじゃないんだから、まずは動くもんが作れればいいんだってば。
それで遅かったらもっと勉強していい方法見付ければいいわけで。
0272名前は開発中のものです。
垢版 |
2017/06/18(日) 19:05:08.47ID:abC7Vm3t
個人製作レベルの小さなゲームだとオブジェクト指向の概念自体いらないっちゃいらないとは思う
でもわかりやすく作る武器としてC++を覚えたいなら
個人的な現状の感想を書いてみると

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

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

ゲーム作る上ではこんな文法より当たり判定とか回転とかのアルゴリズムの方がよっぽど大事ってのは思う
0273名前は開発中のものです。
垢版 |
2017/06/18(日) 20:43:53.58ID:nanwc7sE
重要なのは何を作るか詳細な挙動やパラメータまで考えることだろ
技術的なことはいざとなったら誰かに相談すれば済む
0275名前は開発中のものです。
垢版 |
2017/06/18(日) 21:28:36.39ID:j1fZdyvt
クラス(構造体+メンバ関数)と継承は知っといた方が得だと思う
std::vectorは超絶におすすめ
変なエラーやバグ(配列の不正アクセス)が無くなる

多態性とかテンプレートは、二作目作るとき等に勉強すると「こんな便利な方法があったのかー」と感動するし、理解しやすい
0276名前は開発中のものです。
垢版 |
2017/06/18(日) 22:07:10.75ID:xRdxAyjX
>>272
いる項目の半分くらいはまだ未習ですね…

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

>>275
クラスはある程度文法学習し終わりました
std::vectorはなんのことかさっぱりです
0277名前は開発中のものです。
垢版 |
2017/06/18(日) 23:14:19.78ID:QSbBBvPO
当たり判定は別にいいんだけど本当に難しいのは判定後の反発、押し出し処理
いまだにメーカーごとに意見が分かれる部分
0278名前は開発中のものです。
垢版 |
2017/06/19(月) 00:02:59.64ID:p2tfhpKK
有名な物理エンジン使ってるゲームでも
めり込んでおかしな動きしてることあるからな
0281名前は開発中のものです。
垢版 |
2017/06/19(月) 17:51:36.60ID:gZSjLbfM
>>279
まじか
よくわからなくなってきたので中途半端でやめずにとりあえずC++を一通りやってからゲーム制作勉強します…
0283名前は開発中のものです。
垢版 |
2017/06/20(火) 10:12:50.70ID:Usr/uqTE
いくらC++を勉強したところでDXライブラリはゲームエンジンとしての限界点が低いから
とくにグラが汚いから覚悟しておくことだ
最新の C++ 11 できっちり組んだとしても、遊ぶ人から「これレトロゲーム?」って言われる(笑)
0285名前は開発中のものです。
垢版 |
2017/06/20(火) 13:23:34.57ID:T/7j0XdF
デフォのトゥーンは輪郭線が綺麗で好きだな
いくつかトゥーン作ったけど結局デフォに落ち着いた
0286名前は開発中のものです。
垢版 |
2017/06/22(木) 23:00:29.04ID:2Sd5aLez
javaやC#の標準ライブラリですら
rectangleクラスのintersectで簡易当たり判定は楽にできるみたいなんだよね

思想の違いだとは思うがゲームライブラリならそれくらいあってもいいとは思った
0287名前は開発中のものです。
垢版 |
2017/06/23(金) 00:42:29.61ID:IOEH1G7m
MFCにCRectクラスのIntersectRectがあるよ
まあしかし四角の当たり判定がないくらいで不便って言うのなら c# に乗り換えたほうがいいと思う
c++は全般的に使い勝手あまりよくないから
0289俺が遊園地だ! ◆ExGQrDul2E
垢版 |
2017/07/08(土) 18:53:42.86ID:PjfJpjf3
pythonで入力ゲームを作ってます。

DXライブラリの、
 VisualC# 用パッケージ

で、ゲームパットは正常に動きますか?

pygameのゲームパットが難しいので、そちらが使えたら使おうかと思いました。
0290俺が遊園地だ!
垢版 |
2017/07/08(土) 19:17:30.02ID:PjfJpjf3
普通に使えた。
32bitだから64bitにしたらの不安が有ったけど、心配し過ぎでした。

お騒がせしました。
どうも、です。
0291名前は開発中のものです。
垢版 |
2017/08/01(火) 16:41:53.80ID:2q48AiqK
リファレンスのTellMovieToGraphのサンプルを参考に
LoadGraphでaviファイル読み込んでDrawGraphで映像を描画するプログラムを試してみたら
タスクマネージャで確認したところ動画の再生中はディスク使用量が常に100%近くなってしまうのですが
これはそういうものなんでしょうか?
0292名前は開発中のものです。
垢版 |
2017/08/04(金) 16:38:59.69ID:tsG7+X9W
DXライブラリを使ってC++で
アドベンチャーゲームを作ろうと思っています。
今時のノベルゲームでは無く、ファミコン時代のアドベンチャーゲームです。
今まではアクションゲームやシューティングゲームを作って来まして、
アドベンチャーは初挑戦なのでちょっと不安なんです。

企画だのシナリオだのの前に、まずはシステムや
アドベンチャーゲームを構成するプログラミングから考える必要がありますよね?
しかし、現段階でそれらを考えると、完全に独学のオリジナルになり、
凄く面倒なものを完成させてしまうかもしれません。
自分としては、ひな形とまでは言いませんが、
参考にできるものや、定石を学ぶ方法を模索しております。
なにかありませんか?サイトでも書籍でも構いません、教えて下さい。
0293名前は開発中のものです。
垢版 |
2017/08/04(金) 21:34:34.44ID:nr3e4i5V
githubにソースコード公開して作りながら適度に聞けば?
0295名前は開発中のものです。
垢版 |
2017/08/10(木) 05:42:09.39ID:iSPIllot
>>294
ありがとございます
ただ、自分はどっちかっていうと
考え方を知りたいんですよ
アドベンチャーゲーム制作する上での
フラグの考え方や、変数の使い方です。

考えてみると、アドベンチャーゲームって
フラグめちゃ必要じゃないですかね
例えば、調べる項目が増えていくじゃないですか、
話すで選択できる相手とかも。
そして、キャラの台詞も、
質問二回目、三回目で返答内容変えたり。
そーいうの、どう考えて組み立てていけば
いいのかなって、、
0296名前は開発中のものです。
垢版 |
2017/08/10(木) 16:57:59.32ID:EVBv0/AO
RPGのイベントも話しかける相手や時期、話しかけた回数とかでサブイベント分岐させたりするじゃん
アドベンチャーゲームだからって専用の特殊な考え方やフラグ管理って必要ないと思う
0297名前は開発中のものです。
垢版 |
2017/08/13(日) 23:06:22.13ID:15NIY4cP
定石は無く、ゲームの仕様それぞれに合わせて考えるしかない
仕様が複雑ならより汎用的でいちいち面倒くさい重厚な構造になるし、
仕様が単純なら多少ごり押ししたような方法で手早く必要条件を満たす
そう、答えなきところに答えを出すのがゲームプログラミングというものだ
0298名前は開発中のものです。
垢版 |
2017/08/14(月) 02:28:34.22ID:hzdvLGH2
>>296
アドベンチャーゲームプレイしたことある?
ノベルじゃ無くてさ。
各シーン(場所)で出現する項目数も決まって無いし
その項目数もある項目を通過するたび項目数が増えるし、
その項目だって、何層もあった先の項目だったりする。
それが各シーンで統一できない状態なわけで、、、、
RPGなんかのフラグと同じじゃない、そんなシンプルに出来ない。

>>297
やはりゴリ押しかあ、、、、
0299名前は開発中のものです。
垢版 |
2017/08/14(月) 02:55:30.92ID:TRJCWwIN
場面ごとに専用のフラグや処理を作ると考えるんじゃなくて
進行フラグや取得アイテムに応じて出す選択肢を変えると考えるんだよ
なので仕組み的にはRPGとかと同じと言える

あとはスクリプトデータのフォーマットとか作り方の問題なので
それこそノベルゲームエンジンを参考にすればいい
0300名前は開発中のものです。
垢版 |
2017/08/14(月) 03:35:49.62ID:pHE8mMZP
ゲームの詳細が決まってないような段階で
プログラミングを抽象化するのは無謀な上に当事者は歴戦の勇士でもないという
それならいったんごり押しからの脱構築しかあるまい
そうやって作られたサンプルは動く仕様書として人に意見を聞くにも役に立つ
0301名前は開発中のものです。
垢版 |
2017/08/14(月) 11:01:43.32ID:vcZ6Fez8
>>298
>RPGなんかのフラグと同じじゃない、そんなシンプルに出来ない。

アンタの作ったRPGってちょっとした分岐も無い完全一本道でつまんないレールプレイングゲームになりそうだな
0302名前は開発中のものです。
垢版 |
2017/08/14(月) 12:27:23.39ID:iCSgoKHT
フラグはDBにまとめれば管理手段はどれも共通にできる
sqliteあたりを一通りさわれば可能性を感じられるかと
0303名前は開発中のものです。
垢版 |
2017/08/14(月) 23:08:47.65ID:qCrUMcpY
フラグ・クラス(というかセーブデータ・クラス)を作って、シリアライズ・デシリアライズする方法が楽だな
C#のシリアライザーやUnityのJsonでクラスがあれば、クラスまるごと簡単にファイル保存・読込できる
フラグがいくつ増えてもセーブ・ロードのコーディングしなくていい
0305名前は開発中のものです。
垢版 |
2017/12/31(日) 19:25:19.56ID:/rN76OKL
簡単にお金が稼げる方法興味ある人だけ見てください。

グーグル検索⇒『来島のモノノリウエ』

YF53OEVNGR
0308名前は開発中のものです。
垢版 |
2018/01/28(日) 17:17:24.80ID:7DlFUx6z
うーん、この!
0310名前は開発中のものです。
垢版 |
2018/02/17(土) 07:23:32.90ID:G/oBdhuK
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
0312名前は開発中のものです。
垢版 |
2018/02/19(月) 05:11:46.55ID:3rsXcNLy
fpsの表示なんて、いるかあ?
こんなしょぼい機能を追加してしまうところにDXライブラリの作者のやる気の無さを感じるわ
0315名前は開発中のものです。
垢版 |
2018/02/19(月) 07:45:09.01ID:3rsXcNLy
Unityのfps表示のアセットを見ればわかることだけど、
ひとりのユーザーがfps表示のコンポーネントを公開すればみんなでそれを使えるようにすべきなんだよ
わざわざゲームエンジンに機能を追加しなくてもね
ひとりのユーザーが便利なコンポーネントを公開すればみんなでそれを使う
ということができるようにDXライブラリはもっとコンポーネント指向にして欲しいよなぁ
そのへんがもう遅れてるし、ユーザーも増えないし、コミュニティも育たない原因の一つだね
0316名前は開発中のものです。
垢版 |
2018/02/19(月) 07:53:25.65ID:rQjda85n
育ったコミュニティってどんなコミュニティなんよ?
0317名前は開発中のものです。
垢版 |
2018/02/19(月) 08:38:06.72ID:3rsXcNLy
ゲームエンジン界隈でいちばん育ったコミュニティはUnityでしょ
アセットストアやgithubなどに新しい機能や素材がたくさんあって、
そこから新しいユーザーが増えたり、ゲームが高品質・短時間・低コストで作れたりしてる
そういう人や素材の多さを見てさらにユーザーが増えるような好循環がある
0319名前は開発中のものです。
垢版 |
2018/02/19(月) 13:10:01.54ID:MQhG+/C3
設計思想が全然違うものを引き合いに出されてもな
ユーザも古いライブラリの割には居るし
0320名前は開発中のものです。
垢版 |
2018/02/19(月) 19:33:21.30ID:rQjda85n
DXライブラリは管理人さんがこまめに更新、デバッグしてくれてるから
公式のファイル落とすだけで充分なんだという安心感があるのが逆に良い点だと思う

ユーザー同士のそういうやり取りには
公式本体ファイルのアップデートで使えなくなるのとか
組み合わせの相性が悪いのとかが出てきてもめんどくさいし
「こんな機能が欲しいです」→「○○で出来るだろ」→「どこでDL出来ますか?」
の流れが頻繁に出るのもうざいし、時間がたって消えたファイルの再Upクレクレもうざいじゃん

ユーザーを気にかけててこまめに更新を続けてくれる作者が居るコミュニティの場合
作者の独裁体制の方がユーザーは幸せだし、新規も入りやすいよ
逆に放任のところはユーザー同士の交流が活発な方が良いけどね
0322名前は開発中のものです。
垢版 |
2018/02/21(水) 15:47:15.99ID:1nbj1mbE
素晴らしいライブラリだと思うよ。
ここまでやって欲しくてこれ以上踏み込んで欲しくないラインがわかってる。
0323名前は開発中のものです。
垢版 |
2018/02/21(水) 22:34:52.58ID:Ucw8wVy1
Unityと比べるとblenderと親和性が良くない
逆にMMDやメタセコは良い
日本的なんだけどやはりUnityと違って世界には広まらない
0324名前は開発中のものです。
垢版 |
2018/02/21(水) 22:41:25.06ID:H0hgJRdI
まあ確かに世界に広まってユーザーが増えれば
今後もずっと使えるだろうって安心感も増えるよな
0325名前は開発中のものです。
垢版 |
2018/02/21(水) 22:48:35.83ID:kkwCD6fP
同じとこに這い寄ったって劣化版と見られるだけだべ
オンリーワンの強みを持てばいいのよ
0327名前は開発中のものです。
垢版 |
2018/02/23(金) 01:02:51.27ID:IWXaYcmi
2Dゲー作るのにわざわざUnityなんて面倒なだけだし
ゲームの動作も重いからなぁ
0328名前は開発中のものです。
垢版 |
2018/02/23(金) 09:19:16.45ID:kxmlS11i
2Dゲー作るならDXライブラリの方が向いてるよな。
無駄な裏処理が少ないし
メインループ動作の基本的な考えやFPS固定前提でのエンジンなところも。
逆にDXライブラリで本格3Dゲー作ろうとは思わないけど。
0329名前は開発中のものです。
垢版 |
2018/02/23(金) 11:17:32.81ID:liJddYNV
>>218
ものっそい今更なんだけど
gifはムービーファイル扱いでロードするとアニメーション再生できたはずよ
過去スレで教えてもらったことがある
0330名前は開発中のものです。
垢版 |
2018/02/23(金) 13:04:40.91ID:dJxrVb2a
unityなんか素材をポンポンドロップしてプレハブ化してそれを呼び出すだけよ?超簡単w
0332名前は開発中のものです。
垢版 |
2018/02/25(日) 17:25:26.15ID:r96XISKi
VisualStudio Express 2017には対応しないのかな?まあ2015でも別にいいんだが
0333名前は開発中のものです。
垢版 |
2018/02/25(日) 19:15:17.54ID:NZvHdLzy
いつの間にかMMDのアニメーションのfpsを変えられる関数が追加されてるな
前はMMDとDXライブラリはfpsが30倍違ったからモーション合わせるのが少し面倒だった
0335名前は開発中のものです。
垢版 |
2018/03/04(日) 02:55:50.19ID:1zP7Vw/Z
DXライブラリにもアセットみたいのがあればと思ったけど
ハイレベルなシェーダーマップやfbxに対応してない低レベルモデルしかサポートしてないし微妙だな
0336名前は開発中のものです。
垢版 |
2018/03/08(木) 07:47:12.60ID:3JaGjMOx
ゲームのレベルが低いうちはDXライブラリみたいな縛りがゆるくて自由に何でもできるゲームエンジンが優勢だったけど
わりと最近の、高度化されたゲームが増えるにつれて
ほかの人がつくった高品質・高機能なアセットが使えるゲームエンジンが優勢になっちゃった感じはする
0337名前は開発中のものです。
垢版 |
2018/03/09(金) 23:07:11.90ID:a5uZ81a6
ガワだけちゃっちゃと取り繕えるほうが今のトレンドにあってるからねえ
DXライブラリの本分とは別世界だわさ
0338名前は開発中のものです。
垢版 |
2018/03/10(土) 12:50:23.57ID:ARpShz0t
DXライブラリって元々2D専用で3Dはあとから要望で付けましたみたいなイメージある
3dゲーム作成はプログラム以外も大変だし手軽でクオリティ高くつくれるほうが今時XPみたいな低スペで動く軽さよりも魅力
あと利用規約とかいろいろみると結局物理エンジン自分で実装したりボーンいじるハメになるから全く個人制作向けではない
0340名前は開発中のものです。
垢版 |
2018/03/11(日) 14:17:03.49ID:IH2EL2/u
シェーダ書くのは構わないんだけど自作モデルのメッシュ割りが下手でシェーダが活きない
モデリングセンスの壁ってあるよな

ついでに音楽センスも終わってるから作曲もやべえ
0342名前は開発中のものです。
垢版 |
2018/03/12(月) 21:57:02.23ID:9AivN1FY
全部勉強して作ってたらゲームなんて作れない、っていうか何したいか考える時間すらなくなると思うんだが
0344名前は開発中のものです。
垢版 |
2018/03/13(火) 14:24:59.33ID:+MCBtj4v
コード書くのは苦ではないし数学も物理学もその辺の工学部の学生程度にはあるんだけど
イラストとか音楽とか未知の世界すぎて戸惑ってるわ
0347名前は開発中のものです。
垢版 |
2018/03/14(水) 13:48:00.70ID:XCzjnx8U
プログラマはシンプルが美徳だけどキャラデザは真逆だしな
マグカップとティーカップくらい価値感が違う
0348名前は開発中のものです。
垢版 |
2018/03/20(火) 05:11:01.65ID:jyM2eVTH
キャラデザもシンプルだよ
大ヒットするヤツは特徴がハッキリしていてデフォルメが効いて真似しやすい
0352名前は開発中のものです。
垢版 |
2018/03/26(月) 18:43:16.19ID:WnoRr6Tl
陽炎エフェクトやろうとあれこれ検索したら
Blender 陽炎・排気熱エフェクト - YouTube
ttps://www.youtube.com/watch?v=gubB4QkwnJo

まともなのはこれしかヒットしなくて。
とはいえ、これってDXライブラリに応用できますかね?
フィルタとマスクを重ねる・・・歪みってどう作れば良いんだろ。
0353名前は開発中のものです。
垢版 |
2018/03/27(火) 14:35:14.61ID:U8uMhQkL
Shader使えばできるだろうけど、DXライブラリはShaderの機能が貧弱なのであまりオススメしない
DXライブラリはグラフィック機能全般がはっきり言って貧弱&時代遅れだから
グラフィック処理を凝るようになったら難易度ベリーハードになってまうで・・・
もっとグラ強化してくれたらいいんだけどな
0354名前は開発中のものです。
垢版 |
2018/03/27(火) 14:48:13.36ID:PKqugYbx
ケースバイケースでしょ。
同人レベルじゃ第一級レベルエンジン云々はさほど重要じゃない。
0355名前は開発中のものです。
垢版 |
2018/03/27(火) 15:31:20.51ID:U8uMhQkL
ケースバイケースっていうけど
陽炎エフェクトつくるくらいで限界がくるようではなぁ
0356352
垢版 |
2018/03/27(火) 23:48:02.45ID:vVCMgZTn
そーなのかー。
GraphFilter()辺りを何度か読み直していたんだけど、『これって指定したハンドル全面に作用するよね』と頭抱えていたのです。
そのまんまは無理でも、何か似た効果で違う方法を知恵絞ってみます。
ありがとうございました。

それとお詫びです。
3Dをサンプルに出しましたけど、2Dオンリーで考えていましたm(__)m
書き漏らしました。
0357名前は開発中のものです。
垢版 |
2018/03/28(水) 04:54:42.91ID:t75c1Gyp
困った時は素直に管理人に直接言ったほうが良いと思うな
DXライブラリでDirectX並のことして自己解決するのは本末転倒だし
DXライブラリユーザー全体にとってもためにならない
0362352
垢版 |
2018/04/09(月) 00:50:08.88ID:LBz4klhT
>>357
 ある程度要望がまとまったら、管理人様に要望出すのが貴殿の言う通りLIBと皆さんの為だとも思うのだけど、

> 現在 iOS対応の作業をしているので、大きな機能追加は、機能を追加するかどうかの検討も含め
> すべて iOS対応の後となってしまいます( 半年〜1年後 )、すみません m(_ _;m

 3/18日頃のレスを見るに、当分無理そうだ・・・。
0363名前は開発中のものです。
垢版 |
2018/04/09(月) 09:29:17.25ID:AtbH8//X
シェーダーとか自動でやって欲しいような方向性ならDXライブラリはそもそも向いてなくね?
処理が軽くてブラックボックスになってなくて基本全部自分で触れるのが長所なんだから
あれこれ機能拡張を要求するのはそもそも趣旨が違うんじゃないのと。
0365名前は開発中のものです。
垢版 |
2018/04/10(火) 08:42:46.46ID:I40ecfic
DirectXって初期設定とかOSのバージョン違いの誤作動とかめんどくさいから
そのあたり任せられるだけでも助かるけどな
0367名前は開発中のものです。
垢版 |
2018/04/10(火) 21:49:07.34ID:I40ecfic
逆をいうとそのあたり以外はいらないんだよな。
とにかくハードウェア的な部分や初期設定関係以外は基本、DirectXの関数だけでいい。
あとは余計なことせずに処理が軽いことが一番。現状でいいよ。
あれもこれもと盛ってUnityみたいにならなくていいよ。
0368名前は開発中のものです。
垢版 |
2018/04/11(水) 16:35:14.21ID:d45q6Zye
大きなフレーム持ってるツールは学習コストがそれなりにかかるらね。
同人や個人制作あたりだと結構あの手のツールは段取りに時間かかる。
実際、DXLIBってそういう位置づけのものだと思うよ。
0369名前は開発中のものです。
垢版 |
2018/04/13(金) 13:56:40.97ID:Q35NURll
自分はどっちかといえばunity目指してほしい
上級者の玩具にするとDXライブラリの意味がなくなる
0370名前は開発中のものです。
垢版 |
2018/04/13(金) 14:04:01.73ID:fX9ITxio
Unityの方が上級者(or情弱)向きじゃね
そもそもコミュニティの規模が違うんだからDXlibにUnityライクを求めるのは間違い
0372名前は開発中のものです。
垢版 |
2018/04/13(金) 18:14:01.06ID:qnlmuij1
でもバグっぽいことを掲示板で聞くとすぐ返事返ってきて修正してくれたりするからすごいよね…
0374名前は開発中のものです。
垢版 |
2018/04/14(土) 08:14:47.03ID:J5fuJkMt
明らかにライブラリのせいじゃないクソみたいな質問にもちゃんと答えてるの凄いわ
俺ならキレてる
0375名前は開発中のものです。
垢版 |
2018/04/14(土) 14:41:36.04ID:Hagdi1K8
あれは偉いよね。人間ができてるよ。
俺があの馬鹿みたいな質問の連続くらったらやっぱりキレてると思う(笑)
0376名前は開発中のものです。
垢版 |
2018/04/15(日) 08:45:03.93ID:L///N+7G
心配しなくてもお前らじゃあんなの作れないから、いらつく心配なんかしなくていいぞw
0378名前は開発中のものです。
垢版 |
2018/04/18(水) 22:24:37.19ID:+i4Yavlh
サポートに時間かけて逆に開発が遅延してるけどな
スマホ対応おそすぎどんだけ遅れればいいんだ
0381名前は開発中のものです。
垢版 |
2018/04/19(木) 06:32:44.17ID:GWEoEFzB
言うほど後追いしてる?
0383名前は開発中のものです。
垢版 |
2018/04/19(木) 12:47:14.74ID:Q0kUJgfG
369 名前:名前は開発中のものです。[sage] 投稿日:2018/04/13(金) 13:56:40.97 ID:Q35NURll
自分はどっちかといえばunity目指してほしい
上級者の玩具にするとDXライブラリの意味がなくなる


こいつ利用者で一番馬鹿だわ
0386名前は開発中のものです。
垢版 |
2018/04/22(日) 18:51:58.41ID:cgPT0kaN
今のゲームが当たり前に実装する物理レンダや物理演算は
ラッパーライブラリじゃあ実装できない
Direct Xのラッパーライブラリ作れば時代の最先端だったというのはもうずっと昔の話でしょ
過去の成功体験を忘れられないってか老害よな
0387名前は開発中のものです。
垢版 |
2018/04/22(日) 19:03:54.96ID:jyQNA3uE
それらが出来ないライブラリのスレに居座る老害が何いってんだ
乞食らしくUnity(笑)でも使っとけ
0389名前は開発中のものです。
垢版 |
2018/04/22(日) 20:26:07.89ID:cgPT0kaN
>>387-388
お前らはそこでUnityやUE4への批判をしてしまうところがよくない
DXライブラリでも面白いゲームは作れる!と熱っぽく語るべきだろ
DXライブラリが本当にダメみたいじゃないか
0390名前は開発中のものです。
垢版 |
2018/04/22(日) 20:34:19.03ID:w7fu0Q1x
スーファミレベルの2Dゲームが作れれば満足な俺みたいなおっさんには
今のゲームが当たり前に実装する物理レンダや物理演算なんぞ要らんのです
0391名前は開発中のものです。
垢版 |
2018/04/23(月) 07:23:43.24ID:zTmnRfht
>>398
ゲーム制作ツールとライブラリの区別もつかないとか
先に病院で頭見てもらうべきなんじゃないの?
0392名前は開発中のものです。
垢版 |
2018/04/23(月) 15:53:58.50ID:wUUOYYgP
2D作るにしても物理演算はあった方が便利っしょ。box2dくらいは使えるようになった方がいい。
0394名前は開発中のものです。
垢版 |
2018/04/25(水) 18:53:22.42ID:pNPtAbT4
とある意見「Box2Dぐらいは使えるようになった方がいい(便利だし開発が楽だから)」
とあるマゾ「俺は楽したくない変態だから物理演算はいらない。他の人間もそうあるべき」
俺「開発の効率を上げるのを拒む人間って害悪だよなあ。真空管でパンチカードでも通してろよ・・・」
0395名前は開発中のものです。
垢版 |
2018/04/25(水) 21:42:09.32ID:wCZSlXnR
>>394
その人にとって不必要な機能が追加されることは開発の効率を上げることに繋がらないどころか
その人の必要な機能に対して公式のサポートの手が回りにくくなることから
その人にとっては開発の効率が下がることに繋がるってことを理解しようぜ

機能はあればあるだけいいってもんじゃない、必要な機能だけあるのが一番いい
必要な機能は人それぞれ
0397名前は開発中のものです。
垢版 |
2018/04/26(木) 06:43:12.80ID:Q6Y0G65Q
>>394
Box2D使えばええやん
0398名前は開発中のものです。
垢版 |
2018/04/26(木) 08:55:16.56ID:8FkhnZEo
自分で組んでbox2Dより洗練された高速演算のライブラリを書けるならまあいいけどさ
物理挙動は入れずに衝突判定だけ取ることも出来るんだよ。そこに使うだけでもめっちゃ楽。
0400名前は開発中のものです。
垢版 |
2018/04/26(木) 21:26:57.30ID:O7SEtfFF
>>395
うーん、とりあえず君はプログラム云々以前に日本語を勉強すべきかな
日本語も満足に操れない人間がプログラミングなんてちゃんちゃらおかしいよ
0401名前は開発中のものです。
垢版 |
2018/04/27(金) 19:02:34.86ID:uyUfvLGU
資本力がないとゲームエンジンが開発できなくなったんだよね、今の時代
物理演算、物理レンダ、2Dボーン、タイルマップエディタ、シェーダーのビジュアルスクリプト
こういう「早い」「安い」「うまい」が実現できなければユーザー離れが起きる
0403名前は開発中のものです。
垢版 |
2018/04/27(金) 22:07:00.13ID:uyUfvLGU
ん、君はプログラマーか?
最近はタイルマップエディタとかビジュアルスクリプトが普通に使えるようになったから、
プログラマの負担が減らせるわけで、それはいいことなんじゃないの
(DXライブラリではよく知らんが、少なくともUnityやUE4では)
0406名前は開発中のものです。
垢版 |
2018/04/28(土) 15:19:30.35ID:o1LwlEpU
無駄なものを無駄と判断して切り捨てる能力こそシステム開発において至高

キャラを動かしてるだけで気持ちイイという操作感を追求するのなら物理も有益
0409名前は開発中のものです。
垢版 |
2018/04/29(日) 13:55:41.62ID:S7kv9d23
>>406
方向キー入れた瞬間から等速直線運動スタートしてくれた方が気持ちよくない?
確かにキャラが歩きだす時は加速度運動するのが物理的に正しいけど咄嗟の回避とか間に合わなくてストレスあるね
0410名前は開発中のものです。
垢版 |
2018/04/29(日) 19:49:17.45ID:SoZNbWO3
>>408
誰かと勘違いしてるのかな? 謝らなくていいからキチガイは病院へ行こうねw
0411名前は開発中のものです。
垢版 |
2018/04/30(月) 08:39:38.91ID:tt/t6/9o
>>410
煽られてキレて顔赤くするくらいなら煽らなきゃいいのに
煽らなかったら煽られないんだよ?わかる?w
0414名前は開発中のものです。
垢版 |
2018/04/30(月) 20:09:14.02ID:KhVGgt2z
このスレのレベルが低いのはわかりきってるのになぜわざわざ言葉に出すのか・・・・
0415名前は開発中のものです。
垢版 |
2018/05/07(月) 13:58:29.93ID:Vfb9Bs9K
確かにうんこ旨そうだよな
0422名前は開発中のものです。
垢版 |
2018/06/10(日) 16:27:22.57ID:qJZsL4jW
>>421
さあ、クソの役にも立たないゴミみたいなマウンテンゴリラレスはやめて
人の役に立つレスをしようぜ
0424名前は開発中のものです。
垢版 |
2018/06/13(水) 01:02:11.08ID:zpWb0K6R
最新のハードに対応するのはいいが、
グラフィックがもう10年前くらいの旧世代なのをなんとかしてほしいな
シェーダー使えないとか、HDR対応してないとか
形だけ対応して中身がついてきてない感じだ
0427名前は開発中のものです。
垢版 |
2018/06/30(土) 00:04:57.83ID:QTwf7deE
ジオメトリシェーダとハルシェーダが使えないのは別に文句ないけど
technique使用不可なのは地味にイライラする
0428名前は開発中のものです。
垢版 |
2018/07/04(水) 18:03:25.24ID:GKLylxjM
DXライブラリのシェーダーまわりはそれだけじゃないつーか
DirectX9とDirectX11でコーディング方法が違ったり、
Android版ではそもそもシェーダー使用不可能だったり、
2Dスプライトの表示にシェーダー使えなかったりして
あれもないこれもないって感じになっちゃうなぁ。まあそういうのがいらない人向けなんだろうけど
0429名前は開発中のものです。
垢版 |
2018/08/09(木) 02:58:08.73ID:w7j+HefU
VRoidのVRMファイルの読込に対応しようとしたらマテリアルが物理レンダのパラメータで
DXライブラリだとVRMファイル読込むのは難しそうだ
物理レンダ対応してくんないかな
0430名前は開発中のものです。
垢版 |
2018/08/11(土) 12:47:56.79ID:RmGfKRPO
DxLibのシェーダーのSamplerで、テクスチャごとに違うフィルタリングモードでSamplerを作りたいんだけど無理かな?
プログラム側でSetDrawModeで設定したフィルタリングモードになっちゃうんだけど
0434名前は開発中のものです。
垢版 |
2018/08/12(日) 00:15:54.84ID:DLCHw2GI
時代に遅れすぎた理由は、アセットストアがないせいだな
いまだにアセットがひとつもないのは、アセットおじさんも真っ青だわ
0436名前は開発中のものです。
垢版 |
2018/08/15(水) 02:14:13.34ID:I59D2OX6
DXライブラリでようやく地面モデルと線分の当たり判定つけられた
そこに主人公モデルの位置を同じにした
まだモーションつけてないから
主人公が棒立ちのまま移動した
坂道登れるだけで感動した(小並感
0440名前は開発中のものです。
垢版 |
2018/08/30(木) 08:01:34.88ID:w5Eoz0MG
>>439
多分そこが一番誤解されやすいとこだよな。
基本はDirectXで自前で全部作りたいけれどめんどくさい設定周りだけはやって欲しい人向けのお助けラッパーだよね。
そこにDirectX以上の機能はいらないし。今の状態で十分。
0441名前は開発中のものです。
垢版 |
2018/08/30(木) 14:26:51.75ID:83gEz2C2
「各種ゲーム用エンジン紹介」みたいなところで触れられる分には「そんなもんか」って感じだけど
「ゲームエンジンを使っている」カテゴリの中にDXライブラリ製ゲームが含まれるとあれ?って思う
自分でも基準がよく分からない
0442名前は開発中のものです。
垢版 |
2018/08/31(金) 10:19:13.96ID:MuDS6z7U
教えてほしいんですが
int fp = FileRead_open("csvファイル");
この場合、fpにはcsvがそのまま入ってるという解釈でいいですか?
つまり、ifstream ifs(fp);が可能になるのかが知りたいです。

ifstream ifs(FileRead_open("csvファイル"));は無理ですか?

なんでこんな面倒なこと考えるかというと、
archive化したファイル内のcsvを読みたいんです。
0443名前は開発中のものです。
垢版 |
2018/08/31(金) 10:29:38.50ID:MuDS6z7U
>archive化したファイル内のcsvを読みたいんです

厳密に言いますと、
ifstream ifs();で読み込んで
string buf[要素数];
while(ifs && getline(ifs,buf[line])){
line++;
}
とbuf[]に一旦、そのままcsvの中身を格納したいんです。

普通なら、
ifstream ifs(csvファイル);で問題ないじゃないですか?
でも、そのcsvがarchiveしたファイルから読み込む場合
ifstream ifs(csvファイル);だと読み込みません。
そこでFileRead_openを使うわけですが、
自分はどうしても
ifstream ifs(csvファイル);
string buf[要素数];
while(ifs && getline(ifs,buf[line])){
line++;
}
の流れで利用したいんです。
なので、ifstream ifs(csvファイル);に来る前に
FileRead_openを使い終わらせ、
あとはFileRead関数系を使わなくて済む様にしたいんです。

、、伝わりますか?僕の言いたいこと。。
0444名前は開発中のものです。
垢版 |
2018/08/31(金) 23:18:37.63ID:8gsP87Iw
archive化したテキストファイルは改行コード\nが消えたバイナリファイル化してるから
最初にファイルサイズを計って1行ではなく全部をchar[filesize]に読み込むしかないんじゃない?
0445名前は開発中のものです。
垢版 |
2018/09/01(土) 06:52:39.05ID:RWsTVHZH
>>444
>archive化したテキストファイルは改行コード\nが消えたバイナリファイル化してるから

え、それ本当ですか?

>最初にファイルサイズを計って1行ではなく全部をchar[filesize]に読み込むしかないんじゃない?

すみません、もう少し具体的に教えてください!
0446名前は開発中のものです。
垢版 |
2018/09/01(土) 07:02:25.87ID:BLfEX+5a
>>445
ファイルサイズが1000なら
char t_data[ 1000 ] にファイルのデータを格納する

で、後は添え字で任意のデータにアクセスする
0448名前は開発中のものです。
垢版 |
2018/09/01(土) 14:32:20.17ID:PENKT9BN
>>445
2chは長い行で書き込めないのよ

string all;
char* path = "./hello.csv";
int size = (int)FileRead_size( path ) ; // 1char = 1byte
char* buffer = new char[size];
int id = FileRead_open( path, false ) ;
FileRead_read( buffer, size, id) ;
all = buffer; // copy to string
delete[] buffer;
FileRead_close(id);

// allをcsvのrow(\r\n)とcol(,)でパースする。csv書式の不正チェックとか丁寧にやると長くなるので以下適当
string csv[ROW][COL];
string tmp = "";
int x = 0; int y = 0;
for(int i=0; i<all.length(); i++){
char c = all[i];
if(c == ',') {
csv[y][x] = tmp; tmp = ""; x++;
} else if (c == '\n') { // 本当は\r\nの2つで改行なんだけど
csv[y][x] = tmp; tmp = ""; x = 0; y++;
} else { tmp += c; }
}
csv[y][x] = tmp; // 最後の一個
文字列(string)から数値(intとか)に変えるときはatoiじゃなくてstrstreamだかを使うとよい
0449名前は開発中のものです。
垢版 |
2018/09/01(土) 14:44:21.63ID:PENKT9BN
追記
csvファイルの最後に無駄な改行がついてたりすると配列のサイズ超えたりしがちなので注意
0450名前は開発中のものです。
垢版 |
2018/09/01(土) 14:53:41.96ID:PENKT9BN
さらに追記
csvの最後ってヌル文字で終わってないだろうから自分で足したほうがいいかも

string all;
char* path = "./hello.csv";
int size = (int)FileRead_size( path ) ;

// '\0'が無い文字列char*をstringに渡すと長さ不定でまずい
char* buffer = new char[size+1];
buffer[size] = '\0';

int id = FileRead_open( path, false ) ;
FileRead_read( buffer, size, id) ;
all = buffer; // copy to string
delete[] buffer;
FileRead_close(id);
0453名前は開発中のものです。
垢版 |
2018/09/03(月) 23:58:20.90ID:JgPc/ZW2
「,」じゃなくてTABスペースで区切るとか
「'座標(x,y)'」みたいにシングル・ダブルクォーテーションで囲む「,」を含むセルだとか
CSVも奥が深い
0454名前は開発中のものです。
垢版 |
2018/09/04(火) 02:54:31.44ID:jVVbpFTb
ヘッダにコメントにセル内改行に空白セルに非固定列数に…
あれやこれや対応させると面倒なので、仕様はExcel出力版に決めうちとかしちゃう
それでいてExcel経由でもやり方によって微妙に違ったりするけど
0458名前は開発中のものです。
垢版 |
2018/09/04(火) 18:21:03.16ID:87Ucq8PA
ワロタw
そもそも「小数点の区切りがカンマ」って別に変な日本語じゃないと思うけど?
0459名前は開発中のものです。
垢版 |
2018/09/05(水) 02:54:47.49ID:6fPtkJ/i
「(整数と)小数の区切り記号がカンマ」か
「小数点という区切り記号がカンマ」かってとこじゃない?
まあいずれにせよ通じる内容、普通に見落としちゃうレベルではある
0460名前は開発中のものです。
垢版 |
2018/09/05(水) 23:25:30.03ID:jdPHLPpw
もう>>442は投げ出しているだろうよ
0461名前は開発中のものです。
垢版 |
2018/09/07(金) 06:49:13.67ID:SP/YWN4v
>>460
投げ出していません。
>>448さんのせっかくのソースがちょっと複雑で、、、
言葉でなにをしなければならないのか、アドバイスほしいです。

要は、
archive化したテキストファイルは改行コード\nが消えたバイナリファイル化してるから
普通にCSVを開くプログラムを書いていると
archive後、正常に読み込まないってことですよね?
ということは、バイナリ状態のCSVを読み込むプログラム文を書けってことですか?
でも、それだとビジュアルスタジオ上のデバッグプレイじゃ
バイナリ化してないcsvなんでエラーが起きますよね?

だからすごく困っています。
どうすればいいのか
0462名前は開発中のものです。
垢版 |
2018/09/07(金) 12:19:35.09ID:knV8JfdB
>>461
>>でも、それだとビジュアルスタジオ上のデバッグプレイじゃ
>>バイナリ化してないcsvなんでエラーが起きますよね?
何を言っているのか分からん

デバッグモードだろうがバイナリ形式のファイルを読み込むプログラムを書けばバイナリ形式で読み込むし、
テキスト形式を読み込むプログラムを書けばテキスト形式で読み込むでしょ
0463名前は開発中のものです。
垢版 |
2018/09/07(金) 12:41:21.71ID:SP/YWN4v
>>462
えっと、自分の知識不足かもしれませんが
普通に数字と「,」だけが詰まったcsvファイルを用意していても
バイナリ形式で読むプログラムを書いていれば
バイナリ形式で読むってことですか?

バイナリ形式で読むプログラムを書いた場合は
用意するファイルもバイナリ形式で保存されたファイルじゃないと
ダメなのかなと思っているんですけど。
0464名前は開発中のものです。
垢版 |
2018/09/07(金) 13:34:50.10ID:knV8JfdB
>>463
そもそも上の方に書いてあった
「バイナリ形式は改行が削除される」っていうのが表現として適切じゃないな

改行コードを改行として認識するのがテキスト形式
改行コードをそのまま文字の羅列として認識するのがバイナリ形式

テキスト形式のファイルをバイナリ形式で読み込んだら
そのテキスト内の改行コードがそのまま文字列として読み込まれるだけ
0465名前は開発中のものです。
垢版 |
2018/09/07(金) 13:46:37.16ID:2W2TZVJf
1 複数データを一つにまとめたい(暗号化したい)
2 読み込みプログラム(csvパーサー?)は既存のものをそのまま流用したい
ってことなのかな……

>>444,>>446,>>448のキモは、DXアーカイブファイルを一本のchar配列に読み込む(バイナリデータとして扱う)という部分なので、
結局DXアーカイブもifstreamも関係なくて、char配列内のバイナリデータを自力で解析できるかという話になる

パソコンで使うデータは全てバイナリデータと言えるので、csvだろうが音声だろうがDXアーカイブファイルだろうが全てバイナリ形式で読み込める
0466名前は開発中のものです。
垢版 |
2018/09/07(金) 14:40:43.77ID:SP/YWN4v
>>462
>パソコンで使うデータは全てバイナリデータと言えるので、
>csvだろうがDXアーカイブファイルだろうが全てバイナリ形式で読み込める

その理論だとcsvや音声などの外部素材データをDXarchiveファイルにしたとしても、
archiveする前、つまりはビジュアルスタジオのプロジェクト上で
ビルドして正常に機能してるプログラムそのままでも
archive後も正常に機能するはずではないですか?

もう少し具体的に言いますと>>442で説明しきれなかったんですが
ifstream ifsを利用して、csvの中の数値を配列に入れ込むプログラムを
自分は書いてまして、そのプログラムで問題なく動いてるゲームがあるんですが、
それの完成後にreleaseビルドして、使用してるサウンドやcsvの素材は
フォルダごとarchiveファイル化したんですよ(配布する場合は皆さんそうしますよね?。
そしてexeファイルを実行したところ、画像やサウンドは正常に読み込むんですが、
csvだけ正常に読み込んでくれないんです。
エラーになるというよりは、数値を正しく読み込んで無いようで、配列を利用した背景画像が
バグります。
例えばそこで素材をarchiveファイル化せずに、素材が入ったフォルダをそのままで
利用すると画像やサウンドはもちろん、csvも正常に読み込み、ゲームも正常に動くんです。
なので、私は、こう思ったわけです。
「csvについては、archiveファイル化すること前提にしたプログラムを組まないと
正しく読めないのかな」と。
それで、「FileRead_open」を使わないとダメなのかなと。
archiveファイルのcsvを読み込む場合、FileRead_openを利用しろと言われたことがあるので。
でもあなたの話を聞いてたら、違うのかな、とか。。。
0467名前は開発中のものです。
垢版 |
2018/09/07(金) 15:06:25.39ID:knV8JfdB
>>466
アーカイブは言わば「バイナリ形式」のファイルでしょ?

「テキスト形式のファイルを読み込むプログラム」でバイナリ形式のアーカイブを読み込もうとしてるからバグってるんじゃない?

123
456
789

上記のファイルがあったとして「1行読み込む」関数を使った場合
「123」「456」「789」って読み込むだろうけど
アーカイブ化(バイナリ形式)すると「1行読み込む」関数を使うと
「123\r\n456\r\n789」みたいに 一つの文字列として全部読み込むから数値が正常に読み取れてないと思うんだけど
0468名前は開発中のものです。
垢版 |
2018/09/07(金) 15:15:20.85ID:2W2TZVJf
まず、DXアーカイブファイルは全部のファイルを無理矢理合体&暗号化した完全独自形式のものなので、基本的にDXライブラリが用意した専用の関数でしか読み込めない

画像やサウンドはDXライブラリの読み込み関数を使うから、何もせずともDXアーカイブファイルから読み込めるようになってるんだよ
LoadGraph等には、内部的にFileRead_openが入ってるので、元のフォルダだろうとアーカイブだろうと読み込める

ただ、暗号化されてない場合に限り、小細工を弄すればバイナリファイルとして直接読める。(フォーマットを理解して自力でポインタ移動する必要がある) 上でみんなが説明してるのはこれ

これまでのやり取りを見る限り、バイナリファイル云々は今の君の知識で理解するのはたぶん無理なので、DXライブラリの関数使って地道にがんばったほうがいい
というかなぜFileRead_openを拒むのかがわからない……
0469名前は開発中のものです。
垢版 |
2018/09/07(金) 15:15:27.11ID:SP/YWN4v
呼び出し LoadData(int,int,string);//縦、横、csvファイルパス

void LoadData(int y,int x,string s){
  m_line = y; m_col = x;
  int line = 0;int count = 0;int sum = 0;int nokorinoketa=0;

  ifstream ifs(s);
  string buf[3000];
  Map.resize(m_line);//resizeで行数を決める
  for(int i = 0; i<m_line; i++){Map[i].resize(m_col);}//resizeで各行の列数を決める
  while(ifs && getline(ifs,buf[line])){line++;}
  
  for(int line=0; line<y; line++){
    for(int col=0; col<x; col++){
      if(col < x-1){
       sum = buf[line][count]-48;
       count++;
       while(isdigit(buf[line][count])){
          sum = sum*10 + (buf[line][count])-48;
          count++;}
       Map[line][col] = sum;//Noが格納
          count++;}
       if(col == x-1){//最後の数字
           nokorinoketa = buf[line].size()-count;
           sum = buf[line][count] - 48;
           while(nokorinoketa > 1){
             count++;
             sum = sum*10 + (buf[line][count])-48;
             nokorinoketa--;}
           Map[line][col] = sum;//Noが格納
         }}
     count=0;}}
0470名前は開発中のものです。
垢版 |
2018/09/07(金) 15:22:35.20ID:SP/YWN4v
行数制限のせいで見づらいソースになってますが、ご了承ください。
処理内容は引数で配列の縦と横の値と、csvファイルのパスを受け取り、
まず、bufに全部入れてから、map配列に入れていく感じです。
呼び出しはLoadData(4,4,"h/m/data.csv");みたいな感じで書きます。
archiveファイル化しなければ、これで正常に動きます。

>>468
>基本的にDXライブラリが用意した専用の関数でしか読み込めない
>画像やサウンドはDXライブラリの読み込み関数を使うから、
>何もせずともDXアーカイブファイルから読み込めるようになってるんだよ

納得です。それを聞きたかったんです。わかりやすいです。

>>というかなぜFileRead_openを拒むのかがわからない……
拒んでいません。
一応、FileRead_openを>>469のプログラムに組み込んで動くようにしたんです。
問題なく、動きます。それはプロジェクト上で、ですが。
で、やっぱり外部ファイルをarchiveしたら、そのプログラムではうまくcsvを読み込まないんです。
FileRead_openを組み込んだのに、FileRead_openを組み込む前と同じバグの状況です。
0472名前は開発中のものです。
垢版 |
2018/09/07(金) 15:28:30.17ID:SP/YWN4v
あ、ちなみに>>469で利用しているMap配列の要素数は決めておらず、
vector<vector<int>>Map;と宣言しており、
第一、第二引数を受け取ってから要素数を決定させています。
0473名前は開発中のものです。
垢版 |
2018/09/07(金) 15:35:23.97ID:SP/YWN4v
>>471
ちゃんとFileRead_readで読むプログラムに修正しました。

具体的には、
ifstream ifs(s);
while(ifs && getline(ifs,buf[line])){line++;}
の箇所を
int fh = FileRead_open(s.c_str());
while(fh && getline(fh,buf[line])){line++;}
と変更するだけです(この場合は最後にFileRead_close(fh);してます。

これで問題なくないですか?
実際に、visualstudioのプロジェクト上でビルドすると
正常に動いています。

なのに、releaseビルドして、素材ファイルをarchiveした途端
csvは正常に読み込まないんです、、、、ほんと参ってます。。

なにが悪いんでしょう?
0474名前は開発中のものです。
垢版 |
2018/09/07(金) 15:45:28.86ID:SP/YWN4v
なぜ、FileRead_openを使ってるのに、
FileRead_openを使ってないときのバグが出るんでしょうか。
でも、archive化しなければ、FileRead_openを使ってるそれでも正常に動くのです。

引数でcsvファイルのパスを受け取っているのが問題なんでしょうか?
でも、利用するcsvファイルがいくつもあるので呼び出し命令の引数でファイルを選択してやらないと
困るんですよね。
もちろん、引数では数値を受け取り、switchで数値ごとにcsvを選択させてもいいですが、、
でも引数が問題では無いとも思うんですよ、、、、、。

なんでなのか、もう何日も悩んでいます。

もしよかったら頭から数字,数字,.....というdataが入ったcsvを
FileRead_openで開いて、配列に入れていくという
シンプルなソースを書いてみてくれませんか?

DXライブラリのリファレンスにはcsvを使ったものが載ってないんですよ、、
なので、見せてほしいです。それを理解して応用させたいので。
お願いします、ほんと凄く困っていまして、、、
0476名前は開発中のものです。
垢版 |
2018/09/07(金) 17:09:17.90ID:stA8I9vh
良く分からんけど、こんな感じの事がしたいの?
void LoadData( int t_Width, int t_Height, std::string t_FileName )
{
int t_FileHandle = FileRead_open( t_FileName.c_str() );
int t_FileSize = FileRead_size( t_FileName.c_str() );
std::vector< std::vector< int > > t_MapDataVec;
int t_LoadNum = 0;
char t_Char;

//マップの配列を確保
t_MapDataVec.resize( t_Height );
for( int i = 0; i < t_Height; i++ )
{
t_MapDataVec[ i ].resize( t_Width );
}

//正常に1文字を読み込める間、繰り返す
while( ( t_Char = FileRead_getc( t_FileHandle ) ) != -1 ){
if( isdigit( t_Char ) != 0 ){
int t_Sum = 0;
do{
t_Sum = ( t_Sum * 10 ) + ( t_Char - '0' );
t_Char = FileRead_getc( t_FileHandle );
}while( isdigit( t_Char ) != 0 );

t_MapDataVec[ t_LoadNum / t_Width ][ t_LoadNum % t_Width ] = t_Sum;
++t_LoadNum;
}
}
FileRead_close( t_FileHandle );
}
0477名前は開発中のものです。
垢版 |
2018/09/07(金) 20:11:51.17ID:stA8I9vh
>>473
int fh = FileRead_open(s.c_str());
while(fh && getline(fh,buf[line])){line++;}

ん?
FileRead_readとかのDXライブラリ関数じゃなくて
getlineが使われてる様だが?

例えばabc.csvを他のファイルと纏めて
Archive.dxaっていうアーカイブにした場合、

std::ifstream t;
t.open( "abc.csv");とかしたって読み込まないよ
そんなファイル無いんだから

DXライブラリ用のArchive作ってるのに
それを通常の入出力関数で読み出そうとしてるのがバグの原因だよ
0478名前は開発中のものです。
垢版 |
2018/09/07(金) 22:11:13.47ID:SP/YWN4v
>>477
>getlineが使われてる様だが?

int fh = FileRead_open(s.c_str());
えっと、まずこれをした時点で、
ファイル内の文字がfhに入ってると思ってるんで
それをgetline(fh,buf[line]))するわけですから
問題ないかと思っているんですが、、私、なにか勘違いしてるのでしょうか、、

>t.open( "abc.csv");とかしたって読み込まないよ
>そんなファイル無いんだから

これはどーいうことですか?パスの表記の話でしたら
ここでは割愛しただけですので実際は頭のフォルダとファイル名と入力してます。
t.open( "フォルダ名/abc.csv");な感じで。
、、そー言う問題ではなくて、archiveした場合
"abc.csv"というファイル名ではなくなるという話ですか??


>>476
まさか、これ、自分と同じことやってるプログラムですか?
まさかこんなに短くできますよ、とかじゃないですよね?
すごく興味深いのでちょっと処理をじっくり読ませて頂きます。
0479名前は開発中のものです。
垢版 |
2018/09/07(金) 22:15:41.50ID:SP/YWN4v
>>477
あ、今気づきました、
自分FileRead_read使ってないですね、、、
FileRead_openとFileRead_readと一緒くたに考えてソース作ってしまってました。
FileRead_openもDXライブラリの関数でそれで開いてるから

DXライブラリArchiveしたファイルを開く問題はすでにクリアしたと。
0480名前は開発中のものです。
垢版 |
2018/09/07(金) 22:26:57.73ID:2W2TZVJf
薄々気づいていたけど、あまりにも基本的なことがわかってなさすぎる
勘違いですらなくて、全くわかってない

int fn はただのハンドル(識別番号)だし、ファイルオープンと読み込みは違うし、アーカイブファイルについても全くわかってないし、その知識でバイナリファイルを理解できるわけがない

あんま厳しいこと言いたくないけど、拾ってきたコピペを組み合わせて作ろうと思わず
c++の基本から勉強して、一文字ずつ自分で打ち込んだほうがいい
0481名前は開発中のものです。
垢版 |
2018/09/07(金) 23:04:19.42ID:SP/YWN4v
>>476
すみません、今まで使ったことない関数や表現がありますのでよかったら教えて頂けませんでしょうか、、
自分は今成長したいんで、非常に関心がありますのでぜひともお願いします。
質問1、
if( isdigit( t_Char ) != 0 )
ここの意味は、isdigitで「t_Charの(頭が)空じゃ無いなら」の認識で正解ですか?
判定関数のisdigitを利用したことないもので、、
質問2、
もし1の私の認識が当たっているとすれば
do{ t_Sum = ( t_Sum * 10 ) + ( t_Char - '0' );
t_Char = FileRead_getc( t_FileHandle ); }while( isdigit( t_Char ) != 0 );
ここの条件式は、t_Charの中の文字を読み進めながら
「空の領域になるまで」という理解になりますが、それで間違いないですか?
質問3、
t_Sum = ( t_Sum * 10 ) + ( t_Char - '0' );
すみません、ここのt_Char - '0'の理解ができてないんですがこれはなにを意味していますか?
推測では「,」の場所を判断するために記載していると思うのですが
「- '0'」は文字の0と文字の「,」は同義語ですか?
t_Sum = ( t_Sum * 10 ) + ( t_Char - '0' ); はなにをしているのか
解説して頂けませんでしょうか、、
4、究極に理解が足りず困っているのが
t_MapDataVec[ t_LoadNum / t_Width ][ t_LoadNum % t_Width ] = t_Sum;
です。
本当に、これは初めて見た表現なんですが
t_LoadNum / t_Widthでなぜその時の行数の添字が割り出せるのか、
t_LoadNum % t_Widthでなぜその時の要素数の添字が割り出せるのか
お願いします、解説を、、、、すごく関心があります。そもそも、誰もが記載するであろう、
for(int line=0; line<y; line++){
    for(int col=0; col<x; col++){
の式が無いプログラムで、二次元配列を回している様子が
自分の想像限度外で、もうなにがなんだか。
t_LoadNumの値だけをインクリメントしてるだけでなぜ二次元配列をすべて回すことが可能になるんですか?
0482名前は開発中のものです。
垢版 |
2018/09/07(金) 23:12:10.86ID:SP/YWN4v
>>480
経験が浅いのは認めます、、
特に外部ファイルをいじるのと、archiveファイルについてはほんと理解度が低いです。
でも、ここでそう指摘されることも、
また私が質問させていただくことも自分が成長するひとつの事柄にはなりませんでしょうか、、
ただコピペしたいのでは無く、ソースを理解したくて>>481でも質問させて頂きました。

未熟者なのは認めます、疑問に思ったことをまず自分で検索で調べてみての質問です。
教えて頂けないでしょうか。。
正直、DXライブラリのアーカイブを使わなければ
ゲームは動くのですが、DXライブラリのアーカイブでつまずいてしまっています。
releaseビルドしたあとにバグで遊べないのでほんと辛いのです。
0483名前は開発中のものです。
垢版 |
2018/09/07(金) 23:21:53.72ID:SP/YWN4v
>>480
C++を熟知せずとも、便利な関数のおかげで
手軽にゲームを作れる、それがDXライブラリの良さであり、
短所でもあるのだと思います。

画像を描画するのも関数ひとつです。それで表示できるので
つまずきませんでした。
でもmap情報を外部ファイルにして読むことは、つまずています。
厳密にはアーカイブしなけば読むことは成功していますが、、

「お前は基本がなっていない」と言われたらそうなんですが
でもチュートリアル的なブログや参考書でも、ひとつひとつ完全に理解しようとすると挫折するから
今の自分ではわからなくてもとりあえずそうなんだという精神で進めていきましょう的な
助言も多かったです。ぶつかるたびに覚えていけばいい的な、、違いますでしょうか?
ファイルを扱う、バイナリ形式とかは、初めてです。なのでソースも見苦しいです。
でもそんな私でも>>476のプログラムはすごく魅力的だということがわかるんです。
学びたいんです、、簡単な解説でいいので、お願いできませんか?
0484名前は開発中のものです。
垢版 |
2018/09/07(金) 23:54:23.29ID:VUsIud2k
長い。

【1・2】isdigitが分からないならisdigitについて調べれば?
【3】教科書の最初に載ってるはずだが「'0'」は0という文字そのものを表す
【4】適当に数字を入れて計算してみれば?
0485名前は開発中のものです。
垢版 |
2018/09/08(土) 00:37:34.88ID:DgEMMqli
>>484
【4】適当に数字を入れて計算してみれば?

これ、今やってるんですが、目から鱗です、、、
すごい、添字の回し方、こんなシンプルな表現方法がったなんで
すごい!
0486名前は開発中のものです。
垢版 |
2018/09/08(土) 00:38:42.99ID:DgEMMqli
stA8I9vhさん、天才だ、、参考書やブログで見たことないですよ、
こんな回し方してる人。
0487名前は開発中のものです。
垢版 |
2018/09/08(土) 00:46:42.46ID:DgEMMqli
>>481の4、まじでやばい質問でしたね。アホすぎる、というか
検証しろって感じですよね。ほんとすみません。

ただ、[ t_LoadNum / t_Width ][ t_LoadNum % t_Width ]では
配列の列数と添字とが同じ値だからこそできる計算式ですね。

ちぐはぐの場合は、やはり
for(int line=0; line<y; line++){
    for(int col=0; col<x; col++){
を使うしか無い。

ネットで見たことないのは、
配列の列数と添字とが同じ数にぶちこむケースがあまりないから
ですね、、なんだそういうことか、、、
0489名前は開発中のものです。
垢版 |
2018/09/08(土) 00:57:50.45ID:DgEMMqli
>>488
はい、シンプルですごく驚きました。

それに、二次元配列の要素を回す場合は
これが使えるのは両方の値が同じ場合だけですよね?
自分が要する配列は添字より列数が多い場合ばかりなので
この方法は使えない。
要は>>476さんはソースの参考にということで
記載してくれたので、ちゃんと自分のやりたいことに
組み込めってことですよね。
0490名前は開発中のものです。
垢版 |
2018/09/08(土) 01:05:53.57ID:DgEMMqli
でも少しでも認めて頂けると嬉しいのです。
初心者ですが、昨今ゲーム制作においてもっともポピュラーなUnityでは無く
人口が減少しつつあるC++やDXライブラリでゲームを作ろうとしてる私のこのヤル気を。

まあ、csvのarchiveファイルから読み込む云々でモチベ下がりましたけど
なんで画像やサウンドみたくスムーズに利用できないのか、と
なんら問題なく進められたのに。。
簡単な話、DXライブラリの関数に
getline(識別番号,配列[]))の代わりになるものがあればよかったのに。
引数が違うじゃないですが、どれも。
0492名前は開発中のものです。
垢版 |
2018/09/08(土) 01:12:38.23ID:DgEMMqli
>>491
この問題を考えているので寝ることができないです

t_Sum = ( t_Sum * 10 ) + ( t_Char - '0' );
これの ( t_Char - '0' ); はなにを表しているんですか?

t_Char - '0'です。
なぜ、文字列の'0'を引く必要があるのか、知りたいのです。
0494名前は開発中のものです。
垢版 |
2018/09/08(土) 01:28:20.69ID:DgEMMqli
t_Sum = ( t_Sum * 10 ) + ( t_Char - '0' ); の意味や
'0'がなにを表しているのか検索しようにも
現状のワードだけで検索するのは無理ですよ。。

なぜ俺が長文のプログラムでしていることを
たった一行にできているのか、さっぱりです。
0495名前は開発中のものです。
垢版 |
2018/09/08(土) 01:34:42.92ID:DgEMMqli
>>476の処理なんですが
二行目のint t_FileSize = FileRead_size( t_FileName.c_str() );
をしたあと、変数t_FileSizeは一切使用されておりませんが
ここでファイルのサイズを得る必要があるのはなぜですか?

どなたかわかる方、解説おねがします。
0496名前は開発中のものです。
垢版 |
2018/09/08(土) 02:39:16.41ID:38R4ypyC
>>495
あぁごめんね
FileSizeの部分は消して良いよ

あとシングルクォートで囲んでるのは文字を示すよ C言語の基礎ね
で、'0'~'9'までの文字コードの値は順に並んでいる事が保証されてるから
'0'を引くと整数値に変換出来る

'0' → 48
'1' → 49
'2' → 50 //以下略
0497名前は開発中のものです。
垢版 |
2018/09/08(土) 02:50:26.67ID:zhYpFAkU
まあ文字周りのの仕様から考えると決してC/C++的には正しくないんだろうけどな
やっちゃうよな
0498名前は開発中のものです。
垢版 |
2018/09/08(土) 03:32:28.47ID:DgEMMqli
>>496
>FileSizeの部分は消して良いよ
ありがとうございます、FileSize、なぜ読むのか検索したり情報読んだりで
ずっと悩んでいました。必要無いんですね。

>'0' → 48
なるほど、"-48"を>>496さんは"-'0'"で表していたんですね。
勉強になりました。

ご迷惑かけまくって申し訳ありません。
あと、ひとつだけ質問させて頂いていいですか?
FileRead_openでハンドルを取得したあと、
string型のbuf配列を作って、まずは一旦そこに全部を入れ込みたいんですが
「getline(fh,buf[line])」の様な感じで使えるDXライブラリファイル読み込み関数が
判断つきません。もしかして、無い感じですか?
FileRead_getsを使って、

string buf[3000];&#160;
FileRead_gets( buf,3000, t_FileName ) ;

とか、いけませんか?

私は、一旦buf[]にぶち込んで、
そのあとはもうDXライブラリ関数とか必要無しの状態にして
buf[]の中を回して1文字を読み込んで二次元配列に格納していくって
処理をしたいのですが、、、、それが無理なら
やっぱり、FileRead_getcをつかって
一文字ずつ読んで格納することを考えていこうと思いますが、、
0500名前は開発中のものです。
垢版 |
2018/09/08(土) 04:11:23.63ID:DgEMMqli
>>499
DXライブラリのリファレンスページの
「FileRead_read」のサンプルのプログラムは
画像データの取り込みなので
FileRead_read( Buffer, FileSize, FileHandle ) ;
が配列に使えるのか、わからないのです。

int t_FileSize = FileRead_size( t_FileName.c_str() );
string buf[3000];
FileRead_read( buf,FileRead_size,t_FileName );

これでいけますか?
0501名前は開発中のものです。
垢版 |
2018/09/08(土) 04:21:08.99ID:f8SOqHWR
STLのstring?
それを3000個も用意する意味ないでしょ
配列やstringが何なのか分かってないとしか

やるなら
char t[ 3000 ]でしょ (要素数は3000から可変にすべきだけど)

FileRead_read( buf,FileRead_size,t_FileName );
何でファイルハンドル指定する第3匹数にstringをぶち込んでるの?
訳分からん事してるよ
0502名前は開発中のものです。
垢版 |
2018/09/08(土) 04:34:19.67ID:DgEMMqli
>>501
あ、すみません。
間違えました。

int t_FileHandle = FileRead_open( t_FileName.c_str() );
int t_FileSize = FileRead_size( t_FileName.c_str() );
string buf[3000];
FileRead_read( buf,FileRead_size,t_FileHandle );

これです。
これなら問題ないですか?
0503名前は開発中のものです。
垢版 |
2018/09/08(土) 04:57:08.51ID:f8SOqHWR
string3000個もいらねーって言ってるだろーが!
バッファの先頭アドレスを指定する所にstringの実体を入れてるのも駄目だと思うけど

あと夜遅くてPC使えないとかで手元に実行環境が無いんだったら
使える様になるまで待ってみては?当てずっぽでソースコードっぽいものを書かれても困る
0504名前は開発中のものです。
垢版 |
2018/09/08(土) 05:41:44.22ID:DgEMMqli
>>503
String型(文字列型)とchar型(文字型)と勉強したんで、
csvに入った長い文字列(3,12,43,34,0,32,2,....が数百並ぶとかザラです)を
入れるためにString型を用意したつもりです。
実際、エラーは出ずに今まで動いているのですが、問題になっている理由を
聞かせてください。
char型でも
while(ifs && getline(ifs,buf[line])){
    line++;
   }&#160;
は正常に動くんですよね?

ちなみに3000というのは、csvの文字列がどれだけ長くても対応できるように、、
と思ってそうしているんですが、、、文字列の量によっては無駄になるメモリもありますが、、

>当てずっぽでソースコードっぽいものを書かれても困る
確かにまだ確認はしていませんが、熟練の方でしたら
どうなるのか、わかるかなと思いまして、、聞いてみました。
(確かにいちいち自分で試せばいいですが、以前予期せぬエラーというか
無限ループとか、そういう危ないエラーを食らったことがあるので
なるべく聞いて確認したい気持ちもあります)
0505名前は開発中のものです。
垢版 |
2018/09/08(土) 05:49:23.91ID:DgEMMqli
結局、今夜も夜通しで進展せず朝を迎えた。
プログラムとサイトやブログとにらめっこしてました。

外部ファイル扱いの理解度が足りないせいもありますが
一番は、DXライブラリサイトのリファレンスが親切じゃないこと。
archiveファイル読み込み関数でcsvファイルを扱う場合の説明が不十分。
ifstreamやgetlineで問題なく動くプログラムをやっとこさ組めたのに。。

画像やサウンドなんてFileReadで触らずとも、それぞれ描画関数や再生関数で
archiveファイルから勝手に開けるのに、、、なぜリファレンスサンプルに
テキストファイル取り上げないの、、、、、、
0506名前は開発中のものです。
垢版 |
2018/09/08(土) 06:26:04.85ID:2HdjcsD1
C/C++にはString型(文字列型)なんてものは無く
std::stringクラスオブジェクトを3000個も用意するなって事でしょう
基礎の理解がおぼつかないまま先に進もうとしてめちゃくちゃになってる

DXのサンプル無くてもCのfopen/fread辺りのTXT読み込みサンプルを探して試してみて
デバッガで動きが理解できたら対応するDXライブラリのAPIに置き換えればいい
0507名前は開発中のものです。
垢版 |
2018/09/08(土) 06:40:52.25ID:t6UqvRI+
>>504
例え話をしよう

新居を購入して、そこに引っ越し用のダンボール箱を3000個 搬入したいとする
※新居はダンボール箱3000個まで収容可能とする

でもあなたは"家"を3000個用意してる訳 おかしい事してるの、わかる?

プログラムでいうと、buf[ 0 ]のstringにデータが入ってて
buf[ 1 ] ~ buf[ 2999 ]は無駄になってる

あと文字列 = stringって思ってるみたいだけど
文字列って要はchar型の配列だから別にstringである必要は無いよ
文字列比較とかするつもりが無いんだったら、
std::vector< char > t_DataVec;で充分だと思うけど
0508名前は開発中のものです。
垢版 |
2018/09/08(土) 06:46:54.61ID:DgEMMqli
>>506
>Cのfopen/fread辺りのTXT読み込みサンプルを探して試してみて

fopen/freadあたりの扱い方が近い、ということでしょうか?
了解しました、一度確認してみます。

>>507
ものすごいわかりやすい例え話でした。。
ありがとうございます、ちょっとそれを考慮して修正してみます。
0509名前は開発中のものです。
垢版 |
2018/09/08(土) 09:14:50.02ID:nuE0zfH6
Ruby では簡単。
Ruby, JavaScript などの動的言語を一通りやっていないと、C などポインタのある言語は無理。
言語の難易度が違いすぎる

# コロン区切りのCSV 入力ファイルを、1行ずつ処理する

input_file = "input.csv"

CSV.foreach(input_file, col_sep: ":") do |row|
puts( row[0] + row[1] )
end
0511名前は開発中のものです。
垢版 |
2018/09/08(土) 22:08:22.95ID:DgEMMqli
>>501さん
>配列やstringが何なのか分かってないとしか
>string3000個もいらねーって言ってるだろーが!
>>507さん
>buf[ 1 ] ~ buf[ 2999 ]は無駄になってる

あのうお二人にお聞きしますが、charかstringのどちらがふさわしいかは、今は置いておいて、
stringだと、buf[3000]も要らないんですよね?
私はbuf[3000]のbuf[ 1 ] ~ buf[ 2999 ]は無駄になってるって話でしたよね?
(私は怒っているわけではありません)

string buf[3000];をstring buf[1];に書き換えたら
ビルド後、エラーが出る様になったんですけど、、
もちろん、string buf[3000];に戻せば、正常に動きます。
どういうことでしょうか。

ちなみに私の作ったソースは>>469なんですが、
string buf[1];にしただけでエラーが出始めるということは
列数が足りてないってこと=[0]からも利用してたってことじゃないでしょうか。
お二人は、ちゃんとソースを理解して、無駄だからやめろ、と
ご指摘してくださったのかと思っていたのですが、、、

私はstring buf[];にcsvの文字を入れ込む必要があるので
念のため3000にして、いくらか余りが出てもいいくらいの思いで宣言して利用してるんで
お二人にご指摘された後、ん〜、string buf[0];でcsv内の文字列が全部格納できれば
世話ないんだけど本当かな〜、ともちょっと疑っていたんですが
先ほど試してみて、やっぱりエラーが出た、とう結果です。
>>469のソースの
while(ifs && getline(ifs,buf[line])){line++;}
ここの部分、このgetlineでbuf[]を使うわけですが、[1]だけじゃ困る、
ということですよね??
[3000]を[1]に変えてエラーになるということは。
0512名前は開発中のものです。
垢版 |
2018/09/08(土) 22:19:35.21ID:/fM1gWQu
完全にスレ違いなので他所に行った方がいい
個人的にはc++の教本を一から読み直すことを勧める。
初歩的なことが全くわかってない、ということをまず自覚したほうがいい
0513名前は開発中のものです。
垢版 |
2018/09/08(土) 22:42:35.24ID:DgEMMqli
あと、すみません>>476さん、
昨日からずっと>>476さんのソースを研究させて頂いてるんですけど
間違っているのではないかと思われる箇所があるんですが、
自分の思い違いなのか、書いた>>476さんにお尋ねさせてほしいのですが

//マップの配列を確保
t_MapDataVec.resize(t_Height);
for( int i = 0; i < t_Height; i++ ){
   t_MapDataVec[i].resize(t_Width);}

ここで配列t_MapDataVecの行数はt_Height、
t_MapDataVecの要素数はt_Widthからそれぞれ決めていますよね、
ここはそれで正解なんですけど、
問題はこの後、その配列に数値を格納するときなんですが
t_MapDataVec[ t_LoadNum / t_Width ][ t_LoadNum % t_Width ] = t_Sum;
++t_LoadNum;

これでは、行数の添え字の進み方ががおかしくなりませんか?
これ、行数と要素の添え字を両方ともt_Widthを利用して算出してます。
しかし、行数の数はさっきのresizeではt_Heightで決めています。
つまり、t_Widthとt_Heightの値とは必ず同じというわけでは無いはずなので
t_Widthだけを利用した算出方法では行数の添え字の動きに支障が出ませんか?
0514名前は開発中のものです。
垢版 |
2018/09/08(土) 22:47:12.28ID:DgEMMqli
>>512
>初歩的なことが全くわかってない

それは>>511の内容(エラー)について
私の方が無知で責められる内容だということですか?
ご指摘頂けませんか?

「あなたが言う様に変更したらエラーが出る様になりました」
「、、お前は初歩がわかってないから消えろ」では
納得いきません。申し訳ありませんが、自分が間違っているのであれば
気付かせてからの「わかったら消えろ」発言にして頂きたいです。
0515名前は開発中のものです。
垢版 |
2018/09/08(土) 22:52:29.99ID:DgEMMqli
>>512
もしかしてstringでは配列を作る必要がないということですか?
string buf[1];では無くstring buf;にしろと。
それはそれでエラーになるじゃないですか。
ここで↓
while(ifs && getline(ifs,buf[line])){line++;}

だからbufは配列じゃないと困るんですけど、、
0516名前は開発中のものです。
垢版 |
2018/09/08(土) 22:59:20.13ID:DgEMMqli
>>512
ちなみにこの
https://teratail.com/questions/44651
PAGEの質問の回答者の中に
>C++なのに、あえてmojiretuをchar配列にする理由があるのでしょうか。
>std::string mojiretu[10];
>このように定義しておけば、
>mojiretu[0] = s;
>mojiretu[1] = s2;
>は問題なく通ります。

とstringで配列を作ることを肯定する記載もあります。
別に、charでは無くstringで配列を作ってもダメな手では無いはずです。
0517名前は開発中のものです。
垢版 |
2018/09/08(土) 23:26:58.22ID:JZkN0uf+
なんか変なのわいてんな
0519名前は開発中のものです。
垢版 |
2018/09/08(土) 23:45:27.10ID:DgEMMqli
>>518
そもそもstringクラスの話はココの人に「それでは無駄がでている」との指摘を受けて
話に出しているだけで私としては修正することでエラーが出るなら
buf[3000]で無駄が出ていようが構わいことです。

とにかく、何日も悩んでいるのは、archiveしたcsvを読むのに、
DXライブラリ関数を使っているのにビルド上は問題ないのにarchive後は正しく読まない、
その理由がわからない。

>>477さんが指摘したDXライブラリ関数では無いgetlineも
自分で新たにbool getline2(int fh, string& s);と宣言し
bool StageDataBase::getline2(int fh, string& s)
{char buf[1024];
if (FileRead_gets(buf, sizeof buf, fh) == -1) return false;
s = buf;
return true;}
とFileRead_getsを使って入れ込む関数を作っても、archive後は正常に読み込んでいない。

ここの住人さんが提示するソースを研究なり導入しても改善せず、なにがなんだかわからんのです。
私の未熟なのはわかりましたが、私のやりたいことに対して、
現在のソースの間違い個所を指摘してもらいたいんです。
未熟だ、charでは無駄が、とか正直そんなのどうでもいいですよ。
解決したいのは、archiveしたcsvを今のソースでは
正しく読んでくれないんです。どこが間違っているせいですか?
それがご相談したいことなんです。
0520名前は開発中のものです。
垢版 |
2018/09/08(土) 23:49:24.65ID:JZkN0uf+
甘ったれんな
0521名前は開発中のものです。
垢版 |
2018/09/08(土) 23:49:57.08ID:TBpj/0tY
>>while(ifs && getline(ifs,buf[line])){line++;}
>>ここの部分、このgetlineでbuf[]を使うわけですが、[1]だけじゃ困る、
ということですよね??
「一旦CSVファイルの内容を全部変数に格納して、
その変数からデータを読み込みたい」って話だったでしょ?

バグってんのは、あなたがそういう仕様にコードを修正出来てないから


>>while(ifs && getline(ifs,buf[line])){line++;}
>>だからbufは配列じゃないと困るんですけど、、
bufじゃなくて、そのwhile〜の部分のコードの方を修正するって考えに何故ならない?


>>getline(ifs,buf[line])
別の掲示板の書き込みを見る限り、これあなたが独自に定義した関数でしょ?
関数の説明も無く「エラーが出るんですけど」とか言われても他人は答えられんでしょ


>>これでは、行数の添え字の進み方ががおかしくなりませんか?
おかしくないよ?具体的な数値入れて見直してね

基礎が出来てないとこんな有様になるんだねぇ…可哀想に 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
0522名前は開発中のものです。
垢版 |
2018/09/08(土) 23:56:20.39ID:DgEMMqli
そっちは本当に正解が見えているのか、いないのかわからないのに
私の相談内容外の問題ばかり指摘してくる方だろうと
レスをくれたからにはちゃんとこちらも返事しているつもりです。

私のほかの問題はどうでもいい。相談内容に対しての
perfectなご指摘が欲しいんですよ、私は。
今のところ、本当に有益だった解答は、たったひとつだけです。

>>477さんの
「DXライブラリ用のArchive作ってるのに
 それを通常の入出力関数で読み出そうとしてるのがバグの原因だよ」
だけです。

それ以外は、正直どうでもいいことです。
ソースは千差万別、実力によりピンキリでしょ?
無駄があるとか、綺麗じゃないとか、言いたいことはわかりますが
正味の話、ビルド後、思ったことができていれば問題なくないですか?
みんなが見るのはゲーム画面です。ソースじゃないんですよ。

私はブサイクな自分のソースを晒してまでご相談させて頂いてるんです。
自分のソースに対して、なぜarchive後に正常にcsvを読めなくなってしまうのか、
perfectなご指摘を、どうかお願いします。
0523名前は開発中のものです。
垢版 |
2018/09/08(土) 23:59:02.85ID:2HdjcsD1
大前提だけどアーカイブにはちゃんと目的のファイル入ってる?
FileRead_gets後のbufの中身はデバッガなりprintf/OutputDebugStringAで見て
正しいデータか壊れているかは確認してるよね
0524名前は開発中のものです。
垢版 |
2018/09/09(日) 00:05:17.98ID:/IlMVd18
>>521
あのですねgetline関数は
istream クラスのメンバー関数です。
C++の関数ですよ?
知らないんですか?

ただ、>>477さんにDX専用の関数つかえと
指摘されたので
あとでDXライブり関数を利用するgetline関数を自作しました。
それがこれです↓
bool getline2(int fh, string& s);と宣言し
bool StageDataBase::getline2(int fh, string& s)
{char buf[1024];
if (FileRead_gets(buf, sizeof buf, fh) == -1) return false;
s = buf;
return true;}

で、FileRead_getsを使って入れ込む関数を作った、のに
やっぱりarchive後まだ正常に読んでくれませんでした。

だから未だに困っていますが。
0525名前は開発中のものです。
垢版 |
2018/09/09(日) 00:06:48.24ID:B7UDp+Nk
このくそがき、コピペしてそのまま動くパーフェクト(笑)なコードよこせと駄々をこねてるんだろ?
ソース書いてやったらお礼も書かずにすたこらさっさと消えるタイプだから相手にしなくていいよ

C++入門書のメモリ管理とファイルIOの章でも100回読み返せw
0526名前は開発中のものです。
垢版 |
2018/09/09(日) 00:07:01.16ID:Jspb1/om
お前らのほとんどのレスが無益だったらしいぞwww
スレチなんだからスルーしとけよ
0527名前は開発中のものです。
垢版 |
2018/09/09(日) 00:09:00.72ID:Jspb1/om
今のところ、本当に有益だった解答は、たったひとつだけです。
今のところ、本当に有益だった解答は、たったひとつだけです。
今のところ、本当に有益だった解答は、たったひとつだけです。 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
0528名前は開発中のものです。
垢版 |
2018/09/09(日) 00:09:08.60ID:/IlMVd18
>>523
>正しいデータか壊れているかは確認してるよね

もちろん、デバッグで確認して、bufじゃないですが
最終的な配列の中身を確認し、ちゃんとcvsの数値が
そのまま各要素に入っていることは確認しています。
0529名前は開発中のものです。
垢版 |
2018/09/09(日) 00:10:36.82ID:Jspb1/om
それ以外は、正直どうでもいいことです。

まじクソやなこいつwww
0530名前は開発中のものです。
垢版 |
2018/09/09(日) 00:11:09.34ID:/IlMVd18
>>525
あなたみたいな人間こそ、必要ありませんよ。
私のレスを見て、どこがコピペで済むソースくれ、と読み取れるんですか?
修正しながら何度も問うているでしょ
何度も修正し、頑張っているんですが?
0531名前は開発中のものです。
垢版 |
2018/09/09(日) 00:14:10.09ID:Jspb1/om
>>530
ほぉそれにしては
まともにレスしてるやつに対してよくも「正直どうでもいいことです」とか言えるなお前

消えろカス
0532名前は開発中のものです。
垢版 |
2018/09/09(日) 00:15:50.74ID:/IlMVd18
まあこのスレの住人も千差万別、私よりも知識がある人ばかりでも無し。
外部ファイルから読み込んだことも無い様な人もいるんでしょう。
自分は的確な回答ができない人がそうやって煽るしかできないんでしょうね。

DXライブラリでゲーム作りながらも
archiveファイルにしてない人も沢山いますから。
それどころか、ゲームを完成させたことも無い人もいるでしょうから。
0533名前は開発中のものです。
垢版 |
2018/09/09(日) 00:16:23.64ID:fsKOdpIh
https://dixq.net/forum/viewtopic.php?f=3&;t=20345
class MapCheck {
vector<vector<int>> Map;
int m_line, m_col;
public:
void LoadData(int y, int x, string s);
void ShowData(int y, int x);
bool getline(int fh, string& s);
};
getline を定義してやれば、そのコードで動くことを確認しました。


お前上記の掲示板でgetline独自に定義してるじゃん
お前が使ってるのはistreamクラスのメンバー関数じゃないよ

>>C++の関数ですよ?
>>知らないんですか?
何?その基礎も理解も全く出来てねーくせに喧嘩腰の言い方
もう知らネ 一生困ってろ
0534名前は開発中のものです。
垢版 |
2018/09/09(日) 00:18:33.14ID:/IlMVd18
>>531
まともにレスってなんですか?

相談内容とはまったく違うことに目を向けてきて
「基本からやりなおせ」と指摘してくるレスですか?
相談内容とはまったく違うことに目を向けて
そこ無駄だからcherにしろ、と言うレスですか?

私は、私の相談内容を理解して
それで間違い個所を指摘してくれるレスが欲しいんですが。
0535名前は開発中のものです。
垢版 |
2018/09/09(日) 00:23:57.63ID:/IlMVd18
>>533
それはあなたがその掲示板を先にみて、
先入観をもってるだけでしょ。

私は、その掲示板で相談する前から
自分のソース内で
#include <iostream>してgetlineを利用しています。
その相手の方が、#include <iostream>してることを
知らないから独自に作っただけです。
私のソースではgetlineを定義せず、動いています。

あなたの勘違いですよ
0536名前は開発中のものです。
垢版 |
2018/09/09(日) 00:28:57.36ID:/IlMVd18
ひとつ、言っておきたいのですが、
私のソースは、動くんですよ?
ちゃんと完成してるんです。

ただ、releaseビルドしたあと、素材はフォルダごと
archiveしますよね?
そのarchiveしたフォルダを読むと、うまく読まないんです。
そういう相談なんです。

なのに、archiveファイルを読むのに
関係無い個所の指摘や意見をされても
その話に乗っていくと本題からそれていくので
私も困るのです。
0537名前は開発中のものです。
垢版 |
2018/09/09(日) 00:34:54.50ID:fsKOdpIh
>>535
記載されたソースコード見る限り
#include <iostream>してないけどね 勘違いもクソも無いだろ

>>その相手の方が、#include <iostream>してることを
>>知らないから独自に作っただけです。
意味不。

あと「上手くいかない」「エラーが出る」とかじゃ意味分からんね 具体性がない
0538名前は開発中のものです。
垢版 |
2018/09/09(日) 00:36:31.83ID:/IlMVd18
素材フォルダをarchiveしなければ、
素材フォルダと実行ファイルとでもう動くんです。

ただ、素材フォルダをarchiveしたいと思ったから
>>477さんのおかげで、archiveしたファイルを扱うなら
DXライブラリ関数にしなければならない、とアドバイスを受け
読み込み部分のプログラムを修正しなければならないと知りました。

で、今、いろいろやってるんですが、正しく読み込まない、
なぜだ?DXライブラリ関数を使っているつもりなのに、、、困った。

そういう現状なんです。
どうか、このバカめに、知識人様のお知恵を貸しください。
どこが間違っているのかの、ご指摘がほしいのです。
0540名前は開発中のものです。
垢版 |
2018/09/09(日) 00:52:21.26ID:/IlMVd18
>>537
>あと「上手くいかない」「エラーが出る」とかじゃ意味分からんね 具体性がない

まあ、どういう状況かはこのスレに書いてきたんですが
途中から来た貴方に私が過去レスを見てくれというのも
おこがましいので、貴方のために説明します。
経緯は>>538です
で、私のもともとのソースは
>>469です。
これがarchiveファイルにしていなければ正常にcsvファイルの中身を
Map配列に入れ込める関数です。
この段階のgetline関数はiostreamの関数です。
そのgetlineでなにが行われているのかは、もちろん私より承知なんでしょう。

まあ要は、
このソースのどこをDXライブラリ関数に変えたらいいのか、という相談なんです。
ピンポイントで修正個所を言ってくれる人はほとんどおらず、
別の部分をいろいろご指摘されたわけですが。

で、次にDXライブラリ関数を使って
自分なりに完成させたソースを貼りますね
0541名前は開発中のものです。
垢版 |
2018/09/09(日) 00:54:20.16ID:/IlMVd18
>>539
ここ毎日夜通しで修正してますし、
夜通しでここに書き込みしています。

こんなにヤル気がある生徒なのに、、
0542名前は開発中のものです。
垢版 |
2018/09/09(日) 01:10:26.39ID:WZz40CCH
夜通しやって昼間やらないんじゃ逆効果だろ
自律神経狂うし寝不足で効率落ちるから、休息にもヤル気が必要
ただし煽り猿は気にしなくていい
0544名前は開発中のものです。
垢版 |
2018/09/09(日) 01:24:13.78ID:igBBjSKe
まず、>477の前に俺が>468と>471でパーフェクトな回答をしたことに気付いてほしい

あと、パーフェクトな答えはいっぱい出てるのに何故できないのかというと、君は「変数の型」のことがわかっていないのに自分ではわかってるつもりになっていて、何度それを指摘されても理解しようとしないから

間違いの一例をあげると
>int fh = FileRead_open(s.c_str());
>ファイル内の文字がfhに入ってると思ってるんで
これはC言語の初歩を勉強した人なら絶対にありえないパーフェクトな間違いで、これに気付かないのが全ての元凶になってる
型も入出力も全くわかってない上に、DXライブラリのリファレンスを読む気まるで無しなので、何を説明しても通じない
しかもこういう間違いが書き込みのたびに出てきてるので、皆が基礎を学べと言ってる

もうきりがないので究極にパーフェクトな答えをピンポイントで書くと、
DXライブラリのリファレンスをよく読みCのファイル入出力と見比べて
FileRead_read、FileRead_getsあたりを使って「型の合った正しい引数」を与えればうまくいく
0545名前は開発中のものです。
垢版 |
2018/09/09(日) 01:26:16.05ID:OabHqojG
>>大前提だけどアーカイブにはちゃんと目的のファイル入ってる?
>もちろん、デバッグで確認して、bufじゃないですが
>最終的な配列の中身を確認し、ちゃんとcvsの数値が
>そのまま各要素に入っていることは確認しています。
アーカイブからFileRead_readでCSV読むのは解決済みじゃないか おめでとうさようなら

Releaseビルドすると不安定な挙動になるのはエラーチェック不足や初期化漏れのせい
Debugビルドのときはcharやintのローカル変数が自動で初期値クリアしてもらえてるから
0546名前は開発中のものです。
垢版 |
2018/09/09(日) 01:36:18.09ID:/IlMVd18
>>542
本当にその通りです、
この生活を繰り返してたら剥げそうです
優しい言葉に涙が出そうです。
連投したこと、反省します。

>>544
>俺が>468と>471でパーフェクトな回答をしたことに気付いてほしい

はい、実は>>522を書き込んだあとに過去スレ見返して
あなたが真っ先にperfectな回答をくださってると気づきました。
すみません、477さん以外にまともな回答が無いみたいな発言をしてしまって。

あと、あなたのご指摘が胸に刺さりました。
プログラマに向いてない性格の自分を再確認させられました。
実は私はプログラマに向いてないのに無理やり頑張っていた人間で
ゲームが完成して、調子に乗ってしまっていたようで、自分のそれを忘れていました。
私はすべて独学ですので、まともに学んだとは言えません。

>もうきりがないので究極にパーフェクトな答えをピンポイントで書く

ありがとうございます。
それをちゃんと実行して、考えたいと思います。

>>レスくれた皆様がた
皆様、もう一回初心にかえり
リファレンスとにらめっこしてまいります。
ご迷惑おかけして申し訳ありませんでした。
失礼します。
0548名前は開発中のものです。
垢版 |
2018/09/09(日) 02:50:42.98ID:YiB/2DVS
>>546
ifstream ifs(s);

ここのsに何が入ってるか気になる

まぁとりあえず
現状のDXライブラリの関数しか使ってないソースコード貼ってくれ
0549名前は開発中のものです。
垢版 |
2018/09/09(日) 03:59:58.45ID:B7UDp+Nk
プログラマ向いてないのとまともに学んでないのはソース見てわかったよ
こんなところに躓くほどアホなやつ他の初心者スレでも見たことないし
0551名前は開発中のものです。
垢版 |
2018/09/09(日) 07:06:14.25ID:aEJipmjc
というか、>>546はちゃんとデバッグしてる?
ステップ実行とかすれば簡単に原因が分かるはずだが?

「アーカイブにした途端読み込まない」って
十中八九ファイルパスが間違っててopen出来てないからそこを確認すべき

大方、下記の状態の時に
f.open("data.csv");とか
f.open("csv/data.csv");とかやってんだろうけど

■Test
┣Archive.dxa
┗game.exe
0552名前は開発中のものです。
垢版 |
2018/09/09(日) 17:54:46.31ID:BNO7fyNj
デバックで問題点をぼりこむスキルもないのに、
いきなりゲームを作ろうとするからだよw
そもそもスキル足らない人間の質問なんて要領得ないし、
自分のコードは見せないけど、俺のコードのどこに問題点があるか教えてケロケロって言ってる
アホさ加減にすら気がついてない。
0553名前は開発中のものです。
垢版 |
2018/09/09(日) 18:07:35.28ID:6GoioEmY
だから、Ruby から始めればよい。
大学の授業を受けたほとんどの人が、C 言語はわからないし無意味だって、言ってるw

>プログラマに向いてない
C/C++ などポインタのある言語は、
人間には無理なことをやらしているのだから、向いていないのは当たり前。
君らは、多言語の経験が無いから、自分が馬鹿だと思っているけど、全然違う!

漏れは、10言語以上やってるけど、
動的言語・静的言語・ポインタのある言語の順に、難しくなっていく。
人間から離れて、機械に近づいていくから、だんだん無理になっていく

C++ なんて、1万人に1人とかだから、もっと無理。
数年山籠もりが普通

慶応卒の、Rubyの女神・女優の池澤あやかが言ってる。
授業でC を教えるのはおかしい。
Rubyから始めるべきだって!

C/C++が必要だからって、勉強をC/C++から始める必要はない。
ポインタを追っかけ回すのに時間を取られて、勉強にならないから効率が悪い

動的言語から始めて、プログラミング・システムの基礎を学ぶべき
0554553
垢版 |
2018/09/09(日) 18:15:12.16ID:6GoioEmY
ゲームプログラマになる前に覚えておきたい技術、平山 尚、2008

これは大賞も取った、俗に言う「セガ本」だけど、
セガの入社試験を受ける前に、読んでおいて下さいって言うけど、

これだけでも、マスターしている人は、セガにほとんどいないだろうw

何歳までに始める言語とか、この手の本も、全く簡単じゃない

この手のタイトルの本を、信用しない方がよい。
C/C++ なんて、簡単に学べるわけがないから!
0555553
垢版 |
2018/09/09(日) 18:25:07.50ID:6GoioEmY
>>509
Ruby では、これだけで、CSV ファイルを読み込める。
動的言語では、ファイルI/O なんて読み書きできて当たり前!

ポインタのある言語をやるから、難しくて出来ない

動的言語・静的言語・ポインタのある言語の順に、難しくなっていくから、
ポインタのある言語なんて、多言語でプログラミングして、10年後に始めるべき

言語の難易度が違う

なぜ、C/C++ をやる人が、プログラミング出来ないのかを解説した
0556553
垢版 |
2018/09/09(日) 18:41:50.91ID:6GoioEmY
>動的言語・静的言語・ポインタのある言語の順に、難しくなっていくから、
>ポインタのある言語なんて、多言語でプログラミングして、10年後に始めるべき

例えれば、君はヒマラヤ登山をする初心者w
絶対に無理なのが、わかるよね

まず10年は、簡単な山から登って、基礎体力や登山の方法を学ぶ

まず10年は、コンピューターシステム・プログラミングの方法を学ぶ
0559名前は開発中のものです。
垢版 |
2018/09/09(日) 19:03:52.04ID:8HszjCC2
>>char buf[1024];
>>if (FileRead_gets(buf, sizeof buf, fh) == -1)
あと高確率で勘違いしてるだろうから
ついでに上記のsizeofについてもダメ出ししとく

sizeof演算子を配列に使用した場合、
得られるのは「配列全体のサイズ」であって「配列の要素数」じゃない
多分、要素数が求められると思ってるでしょ?

char型はどの処理系でも1バイトだからたまたま問題なく動くけど
配列のサイズ/配列の要素1個のサイズにしとかないとintとかdouble型とかだと範囲外エラーになる
0560名前は開発中のものです。
垢版 |
2018/09/09(日) 20:35:51.38ID:Jspb1/om
そのsiseofの使い方はなんら問題はない
なぜなら関数はバイト数を入力されることを期待しているから
突っ込みどころはそこじゃない
0561名前は開発中のものです。
垢版 |
2018/09/09(日) 21:35:34.64ID:o9Esn6eC
あホントだ この関数はサイズ指定でいいのか すまぬ

しかし「int型に文字列のデータが入っている」と思うレベルで
ゲームを完成させたというのなら逆に凄いと思うわ
0562553
垢版 |
2018/09/09(日) 22:00:07.53ID:6GoioEmY
ファイルの読み込みなどは、C でやらない。
Lua, Squirrel などの動的言語を使う

本当は、Rubyが良いけど、ライセンスがGPL だから、アプリに組み込めない
0563名前は開発中のものです。
垢版 |
2018/09/09(日) 23:03:21.18ID:B7UDp+Nk
マジかよRubyてゴミだな
0564553
垢版 |
2018/09/11(火) 00:00:02.94ID:ROgWPLgp
デバッガーを使って、1行ずつ、デバッグすれば?
それか、Rubyみたいに各行に、Print文を入れていく

p 0
文1
p 1
文2
p 2

これで、どこまで処理が進んだかわかる
例えば、0, 1 と表示されれば、文2 でエラーを起こしているとわかる
0566名前は開発中のものです。
垢版 |
2018/09/13(木) 00:54:18.17ID:OVIBOeJk
sp4用のDXライブラリ使いたいのに、自由に使わしてもらえないの?
DXライブラリ製作者じゃ無く、変な運営団体が牛耳ってないか?
0568名前は開発中のものです。
垢版 |
2018/09/13(木) 01:21:08.56ID:8MyNpCBt
PS4に限らず、CS向けの開発資料関係はソニーと要契約だし、
PS4向けのDXライブラリにはそういう情報も含まれてるでしょう。
いづれにしても個人が契約結ぶのは無理だし、この会社が窓口請け負ってんじゃないかな。
おそらくOSSにはならないと言うかなれないと思うよ。
0569名前は開発中のものです。
垢版 |
2018/09/14(金) 01:05:52.78ID:Iy4HGXit
CS開発にDXライブラリの知識や資産が活かせるってだけであって
DXライブラリを使えばCS開発ができるという意味ではないからなあ
0572名前は開発中のものです。
垢版 |
2018/09/14(金) 10:44:49.19ID:DNWN2h3R
結局この前のやつはアーカイブから読み込めたのかね

教えてクレクレ君は大体が初歩的な内容をマルチポストして
解決するか挫折するかして失踪するから困る

基礎を学ぶ気が無いんだったら◯◯ツクールとかの製作支援ソフトでも使ってりゃいいのに
0574名前は開発中のものです。
垢版 |
2018/09/15(土) 02:17:37.10ID:/xcvtQHo
C/C++ は、ポインタがある言語だから、難しい

機械に近い言語だから、人間の感覚に合わない。
一つ一つのチェックに、時間が掛かる
0575名前は開発中のものです。
垢版 |
2018/09/15(土) 03:22:43.38ID:i4O38UTc
ポインタがあると思うから難しく感じるねん。
基本がポインタで、int や char が特別やねん。
基本が malloc で、配列が特別やねん。
ほんでその特別な方で済むならそっち使えばええ言語やねん。
思い込んでるほど難しいもんやあらへん。

C++ はそれにたくさんもっと約束事を追加してるもんで、
覚えるのは大変やけど、それ覚えたらプログラマ同士でより複雑なプログラミングも可能になるわけや。
C が三角ベースなら、C++ ベースボールやんな。

そこまで構えんでええ。独習シリーズ買ってあとは必要に応じて参考書買えば大丈夫、大丈夫。
0576名前は開発中のものです。
垢版 |
2018/09/15(土) 06:09:43.23ID:GOhxd3by
ポインタを難しいと全く思わなかったせいか
人に教えるときも、どうもそのへんの感覚が分からんのよねぇ
0577名前は開発中のものです。
垢版 |
2018/09/16(日) 07:09:58.40ID:pTuyxRHX
ダブルポインタ、スマートポインタ、constポインタ、const変数へのポインタ、関数ポインタとか
色々あるけど、別に「理解不能」とはならなかったな

ポインタで詰まってる人ってどこで詰まってるんだろね
0578名前は開発中のものです。
垢版 |
2018/09/16(日) 07:23:34.15ID:Ypv+ZU15
ポインタにつまづかなかった俺ドヤァwwww
0579名前は開発中のものです。
垢版 |
2018/09/16(日) 08:01:05.65ID:De/NLTEL
入門書を読んで理解して無理のない使い方するだけなら簡単だろう。
理解が難しい書き方も出来るから、そういうコードを見た時に難しいと感じるんだろう。
あるいは全く意識しない書き方も出来るからこそ、なぜポインタなんてものがあるのか?と理解に苦しむパターン。
0580名前は開発中のものです。
垢版 |
2018/09/16(日) 10:49:36.24ID:P4oQMMdm
言語の機能が極端に少ない・足りないのをポインタという裏技でどうにかするのがCやで

むしろなぜド素人がCなんて使うのか?と理解に苦しむパターン。
0581名前は開発中のものです。
垢版 |
2018/09/16(日) 11:38:54.49ID:De/NLTEL
>>580
は?俺Cとかめっちゃ使えるしド玄人なのになんで勝手に文脈を誤解されてド素人言われなければいけないのか理解に苦しむパターンだわこれはマジでむしろ理解に苦しむパターンの理解に苦しんでるパターンだろ。
なんで理解してないのに理解に苦しむパターンを勝手に使うのか理解に苦しむパターン。
0582名前は開発中のものです。
垢版 |
2018/09/17(月) 01:27:36.34ID:vd6LnlZ9
ダブルポインタとか言ってるやつは人間として信用しない
0583名前は開発中のものです。
垢版 |
2018/09/17(月) 03:27:40.68ID:Ho87M1a1
STLやポインタが難しいって20年も昔の話だろw
関数ポインタとか、ポインタのポインタとか、C#とか他の言語でも息を吸うように使われてるよ
0585名前は開発中のものです。
垢版 |
2018/09/17(月) 15:46:10.87ID:VSI4gd1E
Cだとポインタ使わずに書くのが難しい処理があるのは事実で、
それに慣れた使用者にポインタは難しいとか他言語にポインタはないとか言っておけば耳障りはいいし、他言語を自由度の低いものとして恐れるようになる。
つまりC言語帝国主義者の陰謀でポインタに関するデマが広められているだけなので要注意。
0588名前は開発中のものです。
垢版 |
2018/09/18(火) 12:42:02.12ID:MRDcFzMt
ゲーム作るのが目的だし、PCの性能も上がってるから
スクリプト言語のような動的な言語もありだし、JavaやC#から入っても良いだろう。
ただまあ、DXLibのスレでC/C++の文句言うなら他をあたりんさいとしか言えんがな。
ただスクリプト言語用のゲームライブラリってそれなりにあるけど、開発が止まってたり、
LGPLだったりと別の意味で使い勝手が難しいものが多いね。
0593名前は開発中のものです。
垢版 |
2018/09/24(月) 08:59:34.99ID:7+TiRmEX
機械語を知らないのかネタなのか、判断に困るのである

機械語は難しいというより面倒臭そうなイメージ
0594名前は開発中のものです。
垢版 |
2018/09/26(水) 08:58:12.16ID:ZwDt4G1d
もう機械語を知らない世代なんだね
0595名前は開発中のものです。
垢版 |
2018/09/26(水) 10:15:27.11ID:JfxWWzQx
【天文台閉鎖、FBI】 アポロ捏造のキューブリックも真っ青、太陽に映ったのはマ@トレーヤのUFO
http://rosie.5ch.net/test/read.cgi/liveplus/1537840672/l50

おまいらが注目しないから宇宙人は出てこれない、その結果、地球の放射能危機がどんどん進んでしまう!
0596名前は開発中のものです。
垢版 |
2018/09/26(水) 18:52:01.79ID:KoAY7X61
アセンブラなんて何の役にも立たないけどな
0597名前は開発中のものです。
垢版 |
2018/09/28(金) 12:13:41.28ID:oxoJJQQI
ポインタが難しいから、ほとんどの言語にはポインタがない

GC で、自動的にメモリも解放する
0599名前は開発中のものです。
垢版 |
2018/10/01(月) 03:55:43.27ID:A/coQG5i
ポインタは簡単だからポインタ・関数ポインタと同等の機能が他の言語でも当たり前に使われている
ゲームだとガベコレ回避にRAIIでメモリを扱うし結局やってることは同じ

バッファコピーをforループでするより組み込み関数memcpy()の方が速いとか、
ポインタの利点はそんな微々たる最適化に使えるかどうかだな
もしその粒度で高速化したいならc++のクラスとかSTLは全部使えん
0600名前は開発中のものです。
垢版 |
2018/12/07(金) 23:16:48.57ID:US4pEEV+
ダメだー、頭が悪くてわからない!
誰か数学に強い人、計算方法教えてくれませんか、、、

1マスのサイズが16×16、そのマスを縦横並べて構成されている
碁盤上のフィールド上で、1マスと同じ16×16のサイズのプレイヤーが
縦、横、斜めと縦横無尽に1ドットずつ移動できるとする。
しかし、そのプレイヤーが移動を辞めてストップするたびに、
その碁盤の区切りにプレイヤーを綺麗に合わせるために
プレイヤーのx、y座標を16で割れる数に修正したい。
つまり、止まるたびに配置を調整されるようにしたいんだよ。

でもどうすればプレイヤーのその時のx、y座標の数値から、
一番移動修正が少なくて済む16の倍数を割り出せるのかが思いつかない、、、
なんか良い計算方法あります?
0601名前は開発中のものです。
垢版 |
2018/12/07(金) 23:25:16.29ID:yzIxZTRx
プレイヤーが移動をやめるということは、方向キーの入力をやめるということでいいのか?
移動してる最中は上下左右斜め自由自在に動けるけど
キー入力をやめたら最寄りのマスに合わせて止まるってこと?
0603名前は開発中のものです。
垢版 |
2018/12/08(土) 00:28:46.54ID:N0HjbxKJ
602のいうように16で整数除算すりゃいいんだよ
X軸座標が0から始まるとして、プレイヤーのX軸座標を16で除算した結果が、0から連番のマス位置だ
マス位置の番号に16を掛ければ、そのマスの基点(左端のX軸座標)が求められるからプレイヤーのX軸座標を合わせりゃいい
Y軸も同じ考え方
0604名前は開発中のものです。
垢版 |
2018/12/08(土) 00:44:37.37ID:9pyRIy5m
>>600
座標をfloat型などの小数型に変換(型キャスト)して、
16.0fや16.0で割り、
小数第1位を四捨五入して、整数型に変換(型キャスト)する
四捨五入の方法や分からん言葉はググルべし
0607606
垢版 |
2018/12/08(土) 05:40:55.61ID:k0S0M7oi
うあ、リロードしてなかった
恥ずかしい

それはともかく、移動をやめたときに適当な座標に合わせるって挙動いいな
自分も機会があったらパクるわ
0609名前は開発中のものです。
垢版 |
2018/12/08(土) 10:01:25.30ID:k0S0M7oi
>>608
実際にやるなら、
・入力ニュートラルになってから一定時間立つと自動移動フラグがON
・自動移動がONの間、少しずつ対象座標に近づく(一定ドットずつなりイージングなり)
・移動完了または入力があったら自動移動フラグOFF
かな
0610600
垢版 |
2018/12/08(土) 10:38:12.08ID:TvUpz+CC
うわー、起きたら、
みんなありがとうございます!
こんなにアイデアっていうか、計算方法出してもらえるなんて
過疎過疎なんで返事無いと思ってましたんで

>>601のおっしゃる通りで、イメージとしては、
将棋版の上でプレイヤーが将棋のコマを好きに移動させられるけど、
移動を止めるたびに、そのコマを盤上の最寄りのマスにきっちり合わせて止める
って感じです。
マスもコマも16×16で同じサイズなので、
一番大きく修正される状態でも半分の8ドットなはずなんで
そこまで瞬間移動に見えないかなと思ってます

とりあえず、>>602さんと>>603さんのが一番理解しやすかったんで
それが最良っぽいんで、それでやってみます。
あ、プレイヤーの移動数値、座標位置ともにdouble型の小数点でやってるんで
>>604さんの案でいえば、キャスト変換しないほうが(すでに小数点なので)良い??
逆で、その都度int型にキャスト変換してから>>602さんの言う16で整数除算した方がいい?
自分ではよくわからない、、
0611名前は開発中のものです。
垢版 |
2018/12/08(土) 13:58:27.62ID:9pyRIy5m
>>610
やり方はいくつか上がったんだから、想定する入出力例をいくつか紙に描いてみて、
コンソールアプリでもビルドして、どのやり方が適切か計算結果を確認してみりゃいい。
一番良いやり方は当人しか分からん。

上がっている方法について少し付言すると、
整数型の割り算は小数が切り捨てられる。
また四捨五入する値が負の場合は、半分の値を引く必要がある
0612名前は開発中のものです。
垢版 |
2018/12/08(土) 14:48:34.57ID:XhAa/j63
整数で割るのはマップデータの当たり判定のほか
パズルゲームとかマウスでアイテム欄から選択とか
いろいろ応用が利くので慣れとくといいかも
0613名前は開発中のものです。
垢版 |
2018/12/08(土) 15:24:10.29ID:k0S0M7oi
単純に「座標なら整数型で持ってるだろう」という前提で
みんな話してたと思うよ

座標みたいに整数で出力される値でも
内部的にはdoubleで持つというのは、理由があるなら別に悪いことじゃない

まあfloatは無いかな…
0615名前は開発中のものです。
垢版 |
2018/12/12(水) 23:59:53.01ID:m1YZshsA
 今始まった話じゃないんだけど。

ttps://i.imgur.com/U9YOAm8.png

 DXライブラリ関係だけ曖昧と指摘されて、コンパイル出来ない。
 思い出した様にたま〜〜〜に出て、一度終了してから起動すると出ない。
 出ない時は全然出ないので再現性がなく、作者様にお伺い立て様もなく。
 VisualStudio2017Comunityですが、同じ症状の人います?
0616名前は開発中のものです。
垢版 |
2018/12/15(土) 11:52:51.86ID:fFdw8IQe
もともとVisualStudioは外から来たライブラリを激しく嫌う習性がある
if文の括弧つけ忘れとかセミコロン置き忘れのようなライブラリと関係なさそうなミスでも
「おめーの関数あいまいなんだよ」みたいな態度を取って文句を言ってくる
0618名前は開発中のものです。
垢版 |
2018/12/24(月) 16:46:25.19ID:aG9DWC8k
ABCDEFGH
1□□□□□□□□
2□□□□□/□□
3□□□□//□□
4□□□//□□□
5□□□/□□□□
6□□□□□□□□
0619名前は開発中のものです。
垢版 |
2018/12/24(月) 17:04:14.55ID:aG9DWC8k
DXライブラリ関係ない話題ですんません
2DのRPGの話なんですが
普段は上下左右の4方向にしか移動できないタイプのゲームで
マップで坂道を表現するときの処理の仕方なんですけど、どんな風にやればいいかなと

マップの侵入不可とかの地形データの中に坂道フラグみたいなのを設定して
移動の時にそれを参照して、現在位置の地形が坂道の場合、斜めに移動する
ってやったら>>618の図で言うところ
のぼる時は 4C→4D→3E→2F→1Gになり
戻ろうとすると1Gは平面で1Fに行ってしまう
また階段途中で引き返しても4Dから5Cに行っちゃう
要するに、坂道に足を踏み入れた時と、坂道から抜け出す時の座標のずれが気になるんですよ
0621名前は開発中のものです。
垢版 |
2018/12/24(月) 23:26:39.63ID:aG9DWC8k
>>620
横視点というより上視点でしょうか
普通にRPGツクールシリーズのマップみたいなイメージです
坂や階段を表現するときにどうしたらいいかなーと

今のままでも5のラインから登って行けば2のラインに出て
2のラインから降りていけば5のラインにたどり着くんですけど
先述の通り途中で引き返したりすると違和感が出てきてしまって…
気にしすぎなだけかもなんですが
0624名前は開発中のものです。
垢版 |
2018/12/26(水) 11:33:16.18ID:hbFgVmYB
なるほど把握

マップチップで考えずに、
単純にキャラクターの表示座標を上方向にズラすんじゃダメ?

もちろんそのままでは背景との整合性が取れなくなるから
マップチップの方をうまく調整しなきゃいけないけど
0625名前は開発中のものです。
垢版 |
2018/12/26(水) 17:53:32.42ID:Rm5+LYVi
5Cから1Gまでは一直線移動で途中から横には出られないようにすべきだね。
エスカレーターの出入り口みたいにする。エスカレーター内は左右or上下で自力移動だけど。
途中で降りられるようにするとおかしくなるよ。
0626名前は開発中のものです。
垢版 |
2018/12/26(水) 18:34:10.93ID:kkI88fKg
いまさら遅いと思うけど、グリッドベースで進行するゲームの場合キャラの位置もグリッド座標で持つようにして
キャラ絵は接触判定とか無視して自動で指定位置に移動するほうがいい
落ちものパズルとかターン制ストラテジーがだいたいこんな感じになってる
0627615
垢版 |
2018/12/29(土) 12:34:00.46ID:X4qFP4Cc
>>616
む、そーだったのか!
でもwarningはあったとしてもerrorはない状態でも出るんですよね。
再起動してビルドするとスンナリ通ります。
0628名前は開発中のものです。
垢版 |
2019/01/01(火) 15:39:47.26ID:+7WWUKx+
visual studioといってもC++コンパイラだけでしょ
テンプレートのエラーなんかでも的外れなエラーをずらずら吐き出すし
0631名前は開発中のものです。
垢版 |
2019/01/28(月) 11:25:34.50ID:cade5/BJ
VisualStudio2015で使ってるけどたまにあいまいですって出るなあ
ビルド通らなくなったかは覚えてないけど気持ち悪い以外に特に問題はないみたいだから気にしないようにしてる
0640名前は開発中のものです。
垢版 |
2019/03/23(土) 08:46:53.32ID:bSYSzO9S
ios対応したのかー
まぁ、俺の昔作ったプログラムは、あることがしたくて、dxlibの非公開APIとwindowsAPIを直接叩いているから、移植は難しいだろうなぁ
0641名前は開発中のものです。
垢版 |
2019/03/25(月) 22:51:52.82ID:eK0voLVD
>>615
 何度見直しても問題点が見付からなかったので、発生した関数内で呼び出している関数のプロトタイプで
    extern void test( int ,int);
としていたのを
    extern void tese( int a ,int b);
にしたら、赤線が取り敢えず消えた。 型だけじゃなく仮変数も付けた方が良いのか。

 他にも発生条件あるんだろうなあ。
0644名前は開発中のものです。
垢版 |
2019/10/11(金) 01:54:12.01ID:wLFAsmkJ
本家サイトの掲示板で5chに自分の悪口書かれてるって騒いでる奴がいたから、
何を書かれてるのか見にきたら、別に何も書かれてなくてワロタ。

それどころか7ヶ月以上書き込みが無い…。

別のスレで書かれてるのか?
それとも総合失調症ぎみの人なのだろうか?

「ネットストーカーが」とか書き込んでるから、ちょっとヤバそうなそうな人の気配はしたが果たして…。
青葉の件から、ああいう書き込み見るとマジで不安になっちゃうよ…。
0646名前は開発中のものです。
垢版 |
2019/10/11(金) 23:18:52.60ID:wLFAsmkJ
青葉真司、京アニの放火の犯人(と今の所されてる男)。

ネタや煽りで「ネットストーカー」とか書き込んでるんなら性格or頭が悪いってだけで、
実質的な害は無い(気分は悪いけどね)からまあいいんだけどさ。

世の中には少数だけど青葉みたいに本気で頭おかしい人が居るからね。
文面だけじゃ本気なのかネタなのか区別つかんし…。

こことか2chとかアングラな掲示板ならともかく、
平和な本家サイトの掲示板では使う言葉は選んで欲しいよ。

レスバしたいんなら、他でやればいいのに…。
0647名前は開発中のものです。
垢版 |
2019/10/15(火) 07:06:52.04ID:i2lxSV5o
ios対応ってどういうことですか?
だって、DXライブラリで作ったゲームって
directX必須じゃなかった??
アイフォンで動くゲームにビルドできるんですか?
0648名前は開発中のものです。
垢版 |
2019/10/16(水) 03:26:10.88ID:5zbE2rtc
Android版とios版はOpenGL ESで描画してる。

ただし関数名はWindows版とまったく一緒なので、c++ソースが共用出来るのがメリットかな。
※OSに依存している部分は書き換える必要が有り

あと、当たり前だけどiosアプリ作るにはMacでXcode使ってビルドする必要がある。


っていうか本家HPに全部説明書いてありますがな…。
0649名前は開発中のものです。
垢版 |
2019/10/29(火) 14:30:39.36ID:HhRe8W4N
ふーん
0650名前は開発中のものです。
垢版 |
2019/10/29(火) 14:30:57.80ID:HhRe8W4N
ふーん
0651名前は開発中のものです。
垢版 |
2019/10/30(水) 00:07:00.43ID:S9EZs4wp
ふーん
0652名前は開発中のものです。
垢版 |
2019/11/09(土) 21:59:31.04ID:fUK6qSh7
>>644
その人は、通称「虐殺ちゃん」といって
プログラマのQAサイトteratailやyahoo知恵袋、おしえてgooで騒いでる超問題児
teratailのスレでウォッチされてる
0653名前は開発中のものです。
垢版 |
2019/11/11(月) 13:39:21.80ID:xKKxnD2l
>>652
teratailのスレ見てきた。
本当に同一人物なら相当ヤバいねあの人。

文章見る限りそんなに知能がたりないわけでもなさそう(人としてバカだし性格は糞だが…)なのに、
プログラミングに関しては本当に無能通りこして障害レベルだね…。

脳みその構造どうなってるんだろ?
ああゆうのが発達障害ってやつなのかな…。
それとも文章はギリギリ健常者だけど、他は知的障害とかあるのか?

日本語は通じてるようだが、プログラミングに関しての所は全く読めてない感じだもんなー。
バカのふりして遊んでるだけならまだいいんだが、なんかガチっぽいのもなぁ…。

しかも、執念も異常っぽいから、
何十年もかけて善良なひとを騙してかき集めたコードを繋ぎ合わせて、
何かゲームのようなもの(もちろんバグらだけ)を完成させるような気もするのがなお怖い…。
0654名前は開発中のものです。
垢版 |
2019/11/11(月) 21:50:05.42ID:Z55XAgnB
>>653
そんなんで怖いのかよ
カス野郎が!
0655名前は開発中のものです。
垢版 |
2019/11/12(火) 08:27:40.44ID:tcBQnMZ0
>>654
こんにちは、虐殺ちゃんですか?

こんな所まで出張とは精が出ますね。
その時間を使って、Cの基礎を勉強なさったらどうですか?

そして、あなた多分「怖い」の意味を理解できてないですよ、
日本語も不自由なようですね…。

一回辞書で調べてみてください。紙の本が面倒なら、google検索等で
「怖い 意味」と入れるとWebの辞書のページがヒットします。

多分あなたの知らない使い方が出てきますよ。
言葉には一つの単語でも色んな意味があるんです。

とりあえず、気になったら調べる癖をつけましょう。
そうすればプログラミングも上達するはずです。

頑張ってください。(なるべく人に迷惑をかけずにね...)
0658名前は開発中のものです。
垢版 |
2020/02/08(土) 02:52:20.88ID:UhC2RKld
Dxlibつかってゲームのロジックとか設計とか組むのは面白いけどゲームとして完成しない
かれこれ5年以上同じ事続けてる
0660名前は開発中のものです。
垢版 |
2020/03/05(木) 04:49:34.97ID:B/JIUoGr
>>658
作ってるのが楽しいなら、別にそれでいいんじゃない。

そもそゲームってファミコン時代でも数人がかりで、数ヵ月〜数年かけてつくるもんだし、
一人で趣味で作ってたら十年かかってもおかしくないよ。

完成させるのが目的なら、とりあえず簡単なプログラムで済むゲームにして、
スケジュール管理もしっかりした方がいいとはおもうけどね。
0661名前は開発中のものです。
垢版 |
2020/03/24(火) 13:34:30.12ID:PZMCMzbN
まぁエンジンのが効率いいわな・・・
基礎的な部分は全部出来合いの物があるみたいだし
DXライブラリって結局全部自分で組めっていってるようなもんだよな?
0662名前は開発中のものです。
垢版 |
2020/03/25(水) 09:02:50.90ID:Elbmu22L
DXライブラリも一応ゲームエンジンに分類はされてるよ。
ただまあ、描画・サウンド・キー入力位しかサポートしてないからなぁ...。(物理エンジンはMMDのモデルのみ対応)

「Unity」「Unreal Engine」とかの開発環境付きのゲームエンジンに比べたらかなり手間ね。
(DirectXを直に触るよりは格段に楽だけどさ。)

ワールドマップを表示するだけでも、
「プログラムコード内でマップデータを数値入力する」
「既存のツールのファイルを読み込むプログラムを書く」
「独自ツール開発してファイルを読み込むプログラムを書く」
のどれかをしないといけないからね。
(専用の2Dマップエディタとか3Dマップエディタがあればかなり効率よくなると思うのだが…)

プログラミングが好きじゃないなら「Unity」とか「Unreal Engine」「ツクール」を使った方がいいよね。

あと利点としてはライセンス料かな、
確か「Unity」とかは無料版もあるけど売り上げがある程度あるなら金払わなきゃいけないからな。
0663名前は開発中のものです。
垢版 |
2020/03/25(水) 18:58:39.83ID:4t6SFiAx
画面を出す仕組みがデフォで組み込まれてるから一応ゲームエンジンといえなくもないが、
やはりライブラリを名乗ってる以上ライブラリな気はするw
0664名前は開発中のものです。
垢版 |
2020/03/26(木) 12:52:45.87ID:N4sxdCnh
MMDに対応してるおかげでモーション作りやすいのは利点かな
UE4のcontrol rigも進歩してるけど俺のノートPCじゃUE4は重すぎる
マシン買い換えるまではDXだな
0665名前は開発中のものです。
垢版 |
2020/03/27(金) 22:08:24.68ID:6wrnl6gG
エンジンっていうほどのフレームワークは持ってないでしょ。
マルチメディアライブラリ以外の何ものでもない。
0666名前は開発中のものです。
垢版 |
2020/03/27(金) 23:15:18.81ID:lyl4ODky
TOPに置いてある14歳からの〜シリーズを見たせいなのか
DXライブラリが子供向けのゆとり仕様だと思ってる奴がいて腹立ったわ
Unityとかのがよっぽどお手軽だよな・・・?
0667名前は開発中のものです。
垢版 |
2020/03/27(金) 23:52:54.74ID:X+sf8jeg
>>665
Wikiでもゲームエンジンに分類されちゃってるからなー。
(広義の意味でとは書いてあるが)
細かく言うとゲームに特化したミドルウェアなんだろうが…。

>>666
とりあえずゲーム作りたいならUnityの方がお手軽ね。
DXライブラリはC言語の基本さえわかれば、すぐ使えるって意味ではお手軽だけど、
それってCは出来る事前提だからね。

あと、マシンスペックはDXの方が低性能でもうごくから、そこもお手軽かもね。
UnityやUnreal Engineをサクサク動かそうと思うと結構スペック要求される。
0668名前は開発中のものです。
垢版 |
2020/03/28(土) 00:16:45.19ID:gTPY90Ty
やっぱそういう認識だよな

ほんとに単純なゲームならCだけできるってのは確かにそうだけど
結局ある程度以上となるとオブジェクト指向で組まないと逆に複雑になる気もするし
0669名前は開発中のものです。
垢版 |
2020/03/28(土) 00:39:56.41ID:E8w1RGpG
うん、大規模なゲーム作るなクラス使わんと無理だと思う。

ただDX自体がC言語の文法だけで書けるようになってるから、
大体のDXの入門系のサイトはCの書き方になっちゃてるんだよね。

c++の文法で始めた方が後々楽だと思うんだけどね…。
0670名前は開発中のものです。
垢版 |
2020/03/28(土) 03:43:21.12ID:p+Y/CHcg
C言語用のこういうライブラリってほかはもうSDLとか
古典ライブラリしかないし、気に入っているけどね。
インターフェースまで持ってっちゃうんで、そこを便利と見るか
余計と見るかは分かれるだろうけど。
0671名前は開発中のものです。
垢版 |
2020/04/19(日) 18:50:01.76ID:HULRFLYX
非同期読み込みがonの状態で作成したグラフィックハンドルについて質問です。

存在しない画像ファイル名をLoadGraphの引数に渡したのですが、戻り値が-1ではありませんでした。
おそらく非同期読み込み用のフラグをハンドルに持たせているからなのでは?と思っているのですが、
DXライブラリにハンドルの作成失敗を確認することができる関数は存在しますか?
0673名前は開発中のものです。
垢版 |
2020/07/28(火) 17:06:56.84ID:PKQFDEZt
Android Studioにも対応したみたいね。

AdMobにも対応できるのかな?
NativeActivityだから設定一筋縄でいきそうにないけど…。
0674名前は開発中のものです。
垢版 |
2020/08/10(月) 16:59:22.43ID:NullcPXe
できるわけないだろ
0675名前は開発中のものです。
垢版 |
2020/08/13(木) 15:13:13.00ID:HGTDuWuc
>>674
断言できるという事はDXライブラリの内部処理に詳しい方ですか?
すいませんが、対応できない技術的な理由を教えていただけませんか?

NativeActivity自体はAndroid StudioならAdMob対応させる方法あるみたいですけど…、
DXライブラリってAdMobが使えなくなるような何か特殊な処理をしてるんでしょうか?
0676名前は開発中のものです。
垢版 |
2020/08/13(木) 22:09:30.15ID:HGTDuWuc
>>674
色々AdMob試してたら、バナータイプのテスト広告はエミュレーター・実機とも表示されましたが…
本番の広告は表示されないって事でしょうか?

正しく広告収益にカウントされないとか、そう言った問題があるんですかね?
0677名前は開発中のものです。
垢版 |
2020/09/10(木) 05:53:20.93ID:hgx4TYmp
お腹すいた
0679名前は開発中のものです。
垢版 |
2020/10/01(木) 19:06:21.36ID:XvAM1eW6
管理人、前はゲームの自体のプログラミングの相談にも親切に答えてたけど、
最近はゲームの処理は自分で考えろってスタンスになったみたいね。

教えてもコードコピペだけして全く成長しない人とか、
自分で考えたり調べたりせずに質問ばかりする人が増えたからしょうがないか…。

そもそもマニュアルやサンプルプログラムすら目を通してるか怪しい人もいるしな。
0681名前は開発中のものです。
垢版 |
2020/10/31(土) 13:15:12.03ID:3FFnVH5q
実際掲示板見ててヒヤヒヤするよ。あまりにも無知な上に礼儀知らずな奴がいて。
しょうもない無礼な質問で管理人さんの手をわずらわせないで欲しいよ。
管理人さんはお前の母親じゃないっての。
0683名前は開発中のものです。
垢版 |
2020/11/01(日) 03:15:14.03ID:oVKR75Ae
礼儀もまた知識。
どんな無礼かと思い覗けば、総てでなくとも自治も出来ている様子。
まあまあ、悪くない状態じゃないかな?
# 個人的にも色々やらかした事があるので胸が痛い。
0684名前は開発中のものです。
垢版 |
2020/11/01(日) 03:23:25.18ID:pnE8AbjZ
あまりに無知で変な質問は管理人が答える前に他の人が答えるようになったけど、
その返信内容が結構厳しめだったりするから、
それがまた雰囲気悪くしてる原因のような気もしなくもない。

まあ、厳しく言われてもしょうがない奴がいるのが大元の原因なんだけども…。
0685名前は開発中のものです。
垢版 |
2020/11/03(火) 05:32:27.53ID:B3TkECaE
技術的な無知もアレなんだけど
そういう人に限ってまた態度が横柄というかため口というか…
「あとこれもついでに訊くんだけどさー」みたいなどういう育ち方したのかなと思う口のきき方。
そこも問題なんじゃないのかな。中高生なんだと思うが。
0686名前は開発中のものです。
垢版 |
2020/11/04(水) 22:23:46.37ID:UXQ1CTHY
久しぶりに見たらジオメトリシェーダーに対応したんだな
でも、うーん使わねー・・・・・モデルに毛でも生やすか?
まあ選択の幅が広がるのはいいか
0687名前は開発中のものです。
垢版 |
2020/11/08(日) 01:15:20.96ID:iMUqnOBq
PCのスペック云々ってしつこくPCのせいにしてる人に、
「PCのスペックじゃなくて、お前のスペックが足らないんだよ」って
みんなハッキリ言わないのは優しさなんだろうけど、余計残酷な気もするな…。

永遠に人や物のせいにして、自分自信の改善は何もできないんだもん。
0688名前は開発中のものです。
垢版 |
2020/11/08(日) 12:44:26.27ID:QTULr99J
>>687
 リファクタリングってか最適化って、地味な作業だしねえ。
 ループの外へ変動しない計算式を出すだけでもそれなりに軽くなるものだけど、今はコンパイラが
勝手にやってくれるんだっけ?

 DXlib関係だと、3万ばかりの点を打たないといけなかったのを小円で打とうとしたら激しく重くなったので、
今絶賛思考ループ中です。
#あ、DXlib的には画像貼り付ける方が速いかも・・・。
0690名前は開発中のものです。
垢版 |
2020/11/09(月) 17:51:20.10ID:Yaz8kYuC
5chに対して言ってるなら最初から品位なんてないぞ。

DXの掲示板に対して言ってるなら、回答無視して同じような質問繰り返してる奴が一番嫌味な奴だ。

嫌味ってのは「人に不快な感じを与える言葉や態度」の事だからな。
0693名前は開発中のものです。
垢版 |
2020/11/14(土) 14:47:45.05ID:siKNafZE
なんとか小手先のごまかしで最後まで逃げ切って作ろうとしてるんだよねこの人は。
この間違った情熱をまともな方向に使えばもっと早く作りたいものが作れるんじゃないかと思うが。
とにかくいまどきのPCでサンプル動かしてるくらいでスペックが問題になんてなるわけないだろうと。
問題が起きたらまず自分のプログラムの構造を疑えよと思うんだけどこの人はもうこのスタイルを変える気ないよな。
0694名前は開発中のものです。
垢版 |
2020/11/15(日) 19:48:43.51ID:N8kSeVVG
>>692
彼は通称「虐殺くん」といって3年くらい前から
いろんな質問サイトで迷惑かけまくってるひとよ
プログラミングを少なくとも5年以上勉強しているのに
if文もfor文も正しく使いこなせない勇者
0697名前は開発中のものです。
垢版 |
2020/11/18(水) 23:28:54.88ID:2/LPUQNv
DXLib使ったオープンソースのACTないかな?
勉強したい
0699名前は開発中のものです。
垢版 |
2020/11/21(土) 12:23:07.75ID:Lo8YiGVf
なんか「虐殺」の事に触れると急に別の話題書き込むやつ現れるよな。
ここも監視してんのかね?

ここは寺尾スレと違って流れ遅いから無駄だと思うがね…。
0704名前は開発中のものです。
垢版 |
2020/12/01(火) 13:48:01.09ID:rszKvpqu
便利だけどこれが使いこなせるなら本家のdirectxも大して難しくないだろうっていう中途半端さ
いや便利だけどさ
誰も使ってないのがな
0705名前は開発中のものです。
垢版 |
2020/12/01(火) 13:53:31.82ID:rszKvpqu
>>661
どこがだw
DXlibはダダ甘だろw
この程度でゼロからゲーム作るとか言うかw
使ったことないけどそれならunityってもうツクールレベルなんじゃね?
0706名前は開発中のものです。
垢版 |
2020/12/02(水) 01:02:45.00ID:6jQXFoln
unityは使い方によっては、もうツクールレベルだと思うよ。
便利なツールや既存のスクリプトが大量にあるから…。

DXは描画とサウンド以外は全部自前でプログラム書かなくちゃいけないから、
そんなに甘くも無いと思うけど…。(超便利だけどさ)

どのレベルから作ればゼロからなの?
まさかグラフィックエンジンから作れとでも?
0708名前は開発中のものです。
垢版 |
2020/12/03(木) 03:35:56.27ID:2bL3buvh
>>707
何処をどう読んだらDXライブラリが気に食わないって認識になるの?
甘くも無いけと超便利って書いてんじゃん…。
0709名前は開発中のものです。
垢版 |
2020/12/03(木) 06:34:38.36ID:LwLiZdPK
>>707
DXライブラリが気にくわないんじゃなくて、
(>>705)の意見や認識が気に食わないんだよww

流れ見ればわかるだろ…、大丈夫かお前?
0715名前は開発中のものです。
垢版 |
2020/12/10(木) 19:30:10.10ID:h0Q8aNuo
俺的には、これの利点は、お作法関係なしにちょいと試せるって事に尽きる。
openglesに対応してくれたら言うことないのだが
0716名前は開発中のものです。
垢版 |
2020/12/17(木) 18:27:36.41ID:3BF3KC1V
>>704がDXライブラリが使いこなせれば本家DirectXもたいして
難しくないだろって言ってますが
私はDXライブラリを解説している「ライブラリではじめるC言語ゲーム開発」
と、インプレスから発売された「DirectX5ゲームプログラミング入門」を
持っていますが両者の内容の難しさでは圧倒的に後者が難しいです
DirectDrawオブジェクトを作成してからの一連のDirectDraw初期化に
関わるAPIの呼び出しをラッパー関数にしたのを説明してくれていますが
DirectDraw初期化にかかわる処理の流れをマニュアル読まなくても
説明できるようになれなくてもサンプルコードの何処にコードを肉付けしたら
ビットマップを動かしたりできるのかを分かるようになることが
大切なのでしょうか?
0718名前は開発中のものです。
垢版 |
2021/01/21(木) 12:48:38.59ID:EsYKa2+n
>>717
明けましておめでとうございます。
0719名前は開発中のものです。
垢版 |
2021/01/22(金) 14:22:54.88ID:g3qywkIW
>>676
ちょうどAdMob実装で悩んでいる者です。
setContentView()を使ってViewを追加する感じで試しているのですが上手く動きません。。。
ヒントをいただけるとありがたいですー!!
0722名前は開発中のものです。
垢版 |
2021/01/27(水) 10:26:40.99ID:pO54nQA3
>>721
こういうシェーダ実装するならPBRとか遅延シェーダとか根本的に描画方法見直さないとキツそうな気がするんだが
0723名前は開発中のものです。
垢版 |
2021/01/27(水) 20:22:37.16ID:zYb3RsZa
根本的に描画方法を見直すから一ヵ月以上かかるって事じゃないのかな?
バグ修正やちょっとした機能追加だと、
当日中にベータ版アップとか普通にするからねDXLibの管理人。
0729名前は開発中のものです。
垢版 |
2021/02/10(水) 08:55:36.54ID:OwAHWNGB
>>676
自分もお聞きしたいでゲス(´`)
0730名前は開発中のものです。
垢版 |
2021/02/10(水) 23:25:35.70ID:Sr55peTy
>>729
JAVA使わんと出来ないよ。Cだけじゃ無理。
やり方は自体は単純で、NativeActivityに直接広告をを表示させる事ができないから、
ポップアップウインドウを作ってそこに張り付けるってだけ。

参考にしたサイト↓
https://www.dynadream.com/ddweb/index.php/Special_Blog?id=20

JAVAとCのサンプルコード↓(一週間で消えるから早めにダウンロードしてくれ)
https://52.gigafile.nu/0217-c435ad0b8f695d247aa68c914b41d7dbf

ちなみにポップアップウィンドウを作って張り付けるやり方は本家の掲示板に回答書かれてるよ↓
https://dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=view&;no=5092
>>719の日付のタイミング的に↑の質問者がマルチポストしてる臭くて無視しちゃったんだよね…。)
0731名前は開発中のものです。
垢版 |
2021/02/13(土) 18:13:12.75ID:vHiwWk47
>>730
返事遅くなり申し訳ございません。
719自体かなり前の投稿でしたので、もう見ていないだろうな…と半ば諦めていたので拾っていただけるとは思いもよりませんでした笑
今からこちらを参考に取り組んでみたいと思います。親切にありがとうございます!!
0733名前は開発中のものです。
垢版 |
2021/02/14(日) 01:53:41.49ID:uLkT4aDJ
>>732
すみません…javaの知識が足りておらず頂いたmainactivity通りに書き換えたのですが
com.google.android.gms.ads達がimport出来ていないのかそこでエラーを吐いてしまいます。
原因はmetadataの所にあると考えて、自分なりに色々試してみたのですが、動きませんでした。。
お心当たりあれば申し訳ありませんが教えて頂きたいです(_ _)
お見苦しいので、一応仮メアドもお付けしました。こちらの方にご連絡下さっても大丈夫です!お願いします(_ _)
0734名前は開発中のものです。
垢版 |
2021/02/14(日) 05:38:25.41ID:Dy+1Wo0O
>>733
「730」だけど、importする物の一部が赤字になってる感じ?
(ちなみに「732」は私じゃないぞ。)

だったら、importの赤字になってる所にマススカーソル乗せて少し待つと「シンボル〜が解決できません」って出るから、
そこで「Add dependency on 〜」って項目選べば自動でプロジェクトに組み込んでくれるよ。
(プロジェクトに組み込むのに少々時間(数分)かかる場合があるから気長に待ってくれ)

import出来てるのにエラーになる場合は、多分AndroidManifest.xmlにmeta-data書く場所間違ってる。
(<application〜>の下じゃなくて中に書いてるとか…)
もしくは単純にJNIの設定間違えてるだけだと思うよ。
(それとも他のJavaのコードだけにしたらエラーなくビルド出来る感じ?)
0735名前は開発中のものです。
垢版 |
2021/02/14(日) 10:04:32.09ID:uLkT4aDJ
>>734
あれwそうだったんですね笑(_ _)
仰っている通り赤字になっていたのでクリックすれば解決し、しっかりサンプルの広告が掲示されるようになりました!
色々手間暇かけて教えていただき本当にありがとうございました!!助かりました!!
0736名前は開発中のものです。
垢版 |
2021/04/12(月) 15:51:28.51ID:hIzPlbwC
あのー
0738名前は開発中のものです。
垢版 |
2021/04/24(土) 19:40:46.00ID:qsls47rg
vs2017comuで作業しているのですが。
ふと思い付いたサンプルを形にしようとしたら、知っていたけどプロジェクト作成までがメンドイ。
じゃあ雛形作って物置に置いて、そこからコピーしてプロジェクト名書き換えて使うか・・・と思ったら、VS上から書き換えられないのかな見付からない。
面倒でも手作業で毎回作るか・・・はあ。

#いやDXの話ではないなコレは。でもDXでの話なんです。
0742名前は開発中のものです。
垢版 |
2021/06/30(水) 21:05:04.03ID:VVkZffnF
ほしゅ!
0743名前は開発中のものです。
垢版 |
2021/07/01(木) 00:30:32.01ID:kp6ipws0
>>740
わざわざ御教え下さったのに気が付かず2ヶ月近く放置してしまいました。
申し訳ございません。

こんな事出来るんですね・・・思えば、あっても不思議ではない機能です。
ただ、作ってZIPに固めたは良いけど、それの使い方が分からず四苦八苦してしまいました。
なんの事はない、スタートページから利用を案内されるのですね(^^;

1回しか固めていないハズのZIPが2ヶ所に同じものが作ってあったり、プロジェクトテンプレート利用するとディレクトリが同名で二重に掘られたりと把握しかねる仕様ではありますが、手作業で書き直せそうなXMLだから何とかなりそうです。
ありがとうございました。
0750名前は開発中のものです。
垢版 |
2021/09/11(土) 17:54:37.63ID:O8AtRukd
>>662
dxlibは開発環境の操作を別途学習する必要があるんだよね
Unityとかはほとんど全ての作業がパッケージ化されてる
素材集めさえも

dxlibの作成者や普及を望む人たちはそれに気付くべきだった
0751名前は開発中のものです。
垢版 |
2021/09/11(土) 21:13:36.32ID:ByGIqduc
いやそもそもライブラリとエンジンの違いだし、その違いはそのままでいいと思う
今となってはdxlibではクロスプラットフォーム対応が弱すぎる
コンシューマーへのリリースはPlay,Doujin!っていうよくわからん1社を通さなきゃならんし
0752名前は開発中のものです。
垢版 |
2021/09/11(土) 23:15:14.34ID:8lzp0zjQ
Unityみたいにしろとは言ってない
ライブラリだけ提供して、はい後は各自で勝手にやってねってやり方がまずかった
0753名前は開発中のものです。
垢版 |
2021/09/12(日) 11:51:45.77ID:BnLmkC9Z
作者がさんざん説明している主旨を理解していないだけじゃん
DXライブラリは作者自身が現場で使っているものを他の皆にも提供しますというスタンスで、
ゲームに特化した便利機能を極力採用していないのも、プログラミング技術を転用しやすいようにとのことだよ
0755名前は開発中のものです。
垢版 |
2021/09/13(月) 18:20:41.35ID:EhatDObD
ただのマルチメディアライブラリなのでゲーム作るかどうかは当人次第ですよ。
作ろうと思えば作れるってだけです。
0757名前は開発中のものです。
垢版 |
2021/09/13(月) 20:01:00.86ID:fnElreQh
>>756
公式サイトの掲示板で機能要望の際などに、そのように回答している例がいくつもあるよ
プログラミング技術を転用しやすい〜の旨は公式サイトの「DXライブラリの仕様と特徴」に書いてある
0760名前は開発中のものです。
垢版 |
2021/09/25(土) 15:12:13.29ID:afD76vkN
最近は忙しいらしいな
バグ修正したら早めに新しいリリースをしてほしいが
0765名前は開発中のものです。
垢版 |
2021/10/03(日) 14:17:24.08ID:5co5t0hy
結局はエンジン系に移るのは避けられないでしょ
Unityが仮になくてもUnrealやGodotにも負けてるよ
0766名前は開発中のものです。
垢版 |
2021/10/03(日) 15:07:06.71ID:ugL+NChB
てか、目指している方向がゲームエンジンとは違うでしょ。比べるほうが間違ってる。
0768名前は開発中のものです。
垢版 |
2021/10/05(火) 21:30:00.79ID:xKHIEZ1/
unityはエディタ込みの制作環境でDXlibは命令(関数)セットを束ねたライブラリで、抽象度の差でDXlibの方が遥かに軽いって認識。
とはいえunityを試験導入した訳ではないのだけれど。
同じコードで検証した人っているのかな?
0770名前は開発中のものです。
垢版 |
2021/10/17(日) 20:45:20.86ID:fpcToy84
dxlibが一番好き
これからも使っていきたい
0771名前は開発中のものです。
垢版 |
2021/10/18(月) 21:12:30.46ID:RZAiXAU0
NFTゲーム、ブロックチェーンゲームに今すぐ参入しなさい
これからこの市場は100倍になる
2年もしたら先行者利益が失われてブルーオーシャンからレッドオーシャンになるだろう
0773名前は開発中のものです。
垢版 |
2021/10/27(水) 17:14:55.71ID:LLwB+/QZ
それが事実ならわざわざ他人を呼び込んで儲けを減らす行為は利益がない
よって信用できないw
0776名前は開発中のものです。
垢版 |
2021/11/01(月) 00:53:01.78ID:1hedLy5J
0794名前は開発中のものです。
垢版 |
2022/01/03(月) 12:06:08.75ID:5Za4y73/
DXライブラリを使ってアンドロイド用のゲームを作ってる(作った)人いる?
0795名前は開発中のものです。
垢版 |
2022/01/03(月) 12:13:54.36ID:5Za4y73/
>>770
おれも。
unityがどんなものか試しに使ってみたけど、予想外に難しかった…
ワクワク感はあるんだけどね。
「unityでゲームを作っても8割はコーディングだ」と言ってる人もいたので、結局慣れてる方のDXに戻って来た
0796名前は開発中のものです。
垢版 |
2022/01/03(月) 15:21:44.59ID:NXx3CZ+R
>>794
勉強のためにいじっています。
unityとかすごいと思います(習得しようともしています)が、なんか違う感があって。
自分は昔ゲーム開発にたずさわった事があるだけのおじいさんなので、ピコピコゲームにunity はいらんだろうと思ってしまいます。なのでDXでって感じです。知らないところで色々と動くのが嫌なんですよ。
0806名前は開発中のものです。
垢版 |
2022/01/23(日) 00:39:34.52ID:392onXKP
クラスのコピーコンストラクタとか代入とかって
単純に全メンバコピーでOKな場合は書かない方が良いのな
なんでこんな遅いんだろうと色々試行錯誤してググってたらこんな説明があったわ

>デフォルト演算子は、優れたコードを生成するためにどのような作業が必要かを把握しています。
>この結果作成されるコードは、ユーザーが作成したコードよりもはるかに高速です。
>これは、プログラマが通常使用できないアセンブリレベルの機能をコンパイラが利用できるためです。
>そのため、デフォルト演算子が必要な作業をこなしてくれる場合は、プログラムでこれらの演算子をユーザー定義によって宣言する必要はありません。

ttps://docs.oracle.com/cd/E19205-01/821-2495/bkahq/index.html
0810名前は開発中のものです。
垢版 |
2022/03/07(月) 17:22:53.97ID:6U4iekUI
>>796
>知らないところで色々と動くのが嫌なんですよ。
まあ、でも道のりは遠いよ。DXLIBで状態遷移やらコンテナ管理のフレームワーク積み上げていくのは。
専門学校の教材向けとしては良いけれどその現場ですら昨今はOpenCiv3Dとか言い出してるし。
当たり判定もライブラリだのみか!と内心戦慄する思いではあるけれど。
0812名前は開発中のものです。
垢版 |
2022/03/26(土) 10:46:26.12ID:aFUKJwym
現在DXライブラリでMMD表示とモーション再生のサンプルを作っているのですが
モデルは表示されるのに何故かモーションが再生されず困ってます。
MMDモデルとモーションデータは読み込めているようで、それぞれ939589632,0とハンドル値が返ってきています。
デバッグしてみるとMV1AttachAnim()が-1を返してくるのですがこの原因がわかりません。

int ModelHandle = MV1LoadModel("MMD/初音ミク/Lat式/Lat式ミクVer2.31/Lat式ミクVer2.31_Normal.pmd");
int VmdH = MV1SetLoadModelAnimFilePath("MMD/モーション/シュレディンガイガーのこねこ_モーション/シュレディンガイガーのこねこ_Lat式ミク.vmd");
int AttachIndex = MV1AttachAnim(ModelHandle, 0, VmdH);

他のモーションデータをいくつか試してみても同様の症状です。
何か原因わかる方いましたら教えてください。
0814名前は開発中のものです。
垢版 |
2022/03/26(土) 16:53:03.08ID:aFUKJwym
ありがとうございます。関数仕様を調べ直しました。
どうもvmdファイルの指定の仕方が根本的に違ったようですね…
モーションデータをリネームしてモデルデータと同ディレクトリに配置したところ、無事に再生されました。
(てっきりモデルとモーションを別に読み込んでアタッチすれば良いものと思っていましたが違うんですね)
0815名前は開発中のものです。
垢版 |
2022/04/21(木) 22:32:09.20ID:ZQtMlLSp
ゲームをして遊びながら稼ぐ時代が到来したぞ
NFTアートとNFTゲームとGameFiとブロックチェーンゲームと
DeFiとメタバースに提供する側・作る側として参入しよう。
(むりなら参加する側でもいい)
DAOとPlay-to-Earn(遊んで稼ぐ)が世界の未来になる
特にNFTアートとNFTゲームとGameFiは今なら先行者利益取れるぞ
NFTアートとNFTゲームとGameFiはこれから1000倍規模の市場になる
0816名前は開発中のものです。
垢版 |
2022/05/08(日) 05:55:42.78ID:+Tj9vhQk
Nimは至高のプログラミング言語と言われてるので使ってみたいと思ったけど、DXライブラリ的なものはなさそうで(?)残念。
C++は難しすぎる…
0817名前は開発中のものです。
垢版 |
2022/05/08(日) 16:35:04.36ID:JXrciAwM
dxlib.dll使って好きな言語から呼び出しなよ
コンパイル時間がかからない言語だと作業効率が格段に良くなるよ
0818名前は開発中のものです。
垢版 |
2022/05/08(日) 17:20:24.55ID:+Tj9vhQk
教えてくれて超ありがとう。
「DXライブラリ置き場」の説明文に「C++言語用のゲームライブラリです。」とあるので、Nim等では使用不可だと思ってた…
0819名前は開発中のものです。
垢版 |
2022/05/08(日) 18:53:43.75ID:JXrciAwM
nimってC++のlibを読み込めるんじゃなかったっけ

dllで使用する場合は「VisualC# 用パッケージ」にあるものだったはず
これはC++のソースを機械的にdllに変換しているらしいので、C#かどうかは問わない
(C#の関数定義のヘッダーファイルが用意されているだけ)
0820名前は開発中のものです。
垢版 |
2022/10/07(金) 12:09:00.15ID:uIRqnidC
日本語で処理内容を書いたらコードにしてくれる
AI Programmerってサイトを雑談スレで知ったんだけど
DXライブラリの関数も認識してくれるみたい
試しにDrawFormatStringで文字列描画するって入れてみただけなんだけど
普通に認識してびっくりした
0821名前は開発中のものです。
垢版 |
2022/10/18(火) 22:30:42.75ID:E4A/56eM
起動画面にDXライブラリのロゴを入れておきたいな、と思い付きで思い立ち、サイト見に行ったらトップページの一番上にあるロゴしか、らしいロゴがなかった。
あーーー、うーん・・・。
ほなら、マイクロソフトのDirectXのロゴはどうなってる?
取り敢えず仮のでっちあげの参考に・・・と思ったら、負けず劣らず中々にデザイン性が低い(笑)。
感性肌ではない技術屋寄りな感性は嫌いじゃないしむしろ好感が持てるけど、それでもデザイン性が低いモノは低い。

とは言え好き勝手に批判しているけれど、私自身もデザイン出来ないからウダウダしている訳で。

ttps://imgur.com/a/rtaxY0p
0825名前は開発中のものです。
垢版 |
2022/11/15(火) 19:32:51.49ID:qUvoS8na
      ,__.,、_,、
     (  (´・ω・`)
     u u∩u ∩
       (・ω・ | |
       |     |
       |   ノ
       ∪∪


 
                                `ヽ.__/
|                /   |
|            / ミ |
| ビターン         / ミ   |
|     \、_,ノ     、_/  |
|     _,ノ   ,、_,、 (   |
|     `) ('ヽ、   ))  ___──
|         ヽ   /      ̄ ̄ ̄
|        / ,- ヽ   ̄ ̄ ̄──
|    '⌒)(__,/ ヽ__)(`   |
|    /'        '^\   |
0828名前は開発中のものです。
垢版 |
2023/02/18(土) 21:10:49.50ID:1FcS55Q7
このライブラリ好きだから使い倒したいけどシェーダーさっぱり分からんなぁ
世の中にはDXライブラリでPBR実装してる猛者がいるみたいだけど
0829名前は開発中のものです。
垢版 |
2023/02/22(水) 16:13:57.31ID:cRnUTgrJ
>>827
https://echo.5ch.net/test/read.cgi/gamedev/1484755223/166

166 :Hiromiti:2017/01/23(月) 08:35:33.99 ID:W7jAWX1Z
俺ぐらいの人間になるとね
人を集めようとはせずに一人になることを求めたがる
自分一人の方が楽だし、俺の感性や頭脳に追いつく人間もいない
回りの人間のレベルに合わせてみたり、
回りの人間に説明して説得する時間が勿体無いから
「もういいよ。全部、俺がやるから」と言って何でも自分でやろうとする

俺はそういう常人にはない特殊な感性を持った人物です
本人がやりたいと思ったことは世間の常識に囚われず本当にやってみせる

2ちゃんねる管理人ひろゆきを正式メンバーに入れることも冗談ではないよ?
チャンスさえあって、自分の目の前に彼が偶然現れれば
迷いなく彼に「俺に力を貸せ」と言ってることでしょう

これは仕事ではないので給料など出さん
その代わり面白いゲームを誕生させようぜ
だが、たくさん売れればその売り上げはメンバー全員で山分けしようぜ
あのクラスになれば金なんて腐るほど持ってるんだろう?

だったら目先の金(給料)などどうでもいいじゃん?
その代わり、面白いゲームを作ろう!
史上最強の同人ゲームを作ろう!
それを冬コミで売るなら、冬コミでトップセールスを記録してみようぜ!
ZUN氏の東方シリーズを超えるほどのね
0833名前は開発中のものです。
垢版 |
2023/02/27(月) 08:05:07.39ID:UhBGgqfi
>>827
288 :Hiromiti:2017/01/27(金) 02:36:35.36 ID:fq1oBnv1
DXライブラリはPS4やPSVITAのゲーム開発にも対応したからね
同人ゲームでPS4のゲームが開発できるんだぜ?魅力的じゃない?

それにDXライブラリのプログラミングの本質的な開発に専念できるところも
分かりやすくて気に入ってる
複雑なツールの操作を必要とせず、DXライブラリ関数をC言語プログラムで呼び出すだけで済むし

まあ、来月からプログラミング講座を開くので楽しみにしておいてよ
2年後の冬コミで同人ゲームを出展させることも本気ですから
まあ予定より早くゲームが完成したなら
その時点で売ればいいが、最長で2年の開発期間という意味


525 :Hiromiti:2017/02/09(木) 17:05:25.61 ID:U0omOnFe
俺は堀井雄二を超えてみせる
0834名前は開発中のものです。
垢版 |
2023/03/02(木) 14:27:08.96ID:wJYQAIPf
>>816
自分で描いても大した量じゃない
0835名前は開発中のものです。
垢版 |
2023/03/12(日) 12:01:27.56ID:RSIvxiiH
>>827
192 :Hiromiti:2017/01/23(月) 21:57:01.74 ID:W7jAWX1Z
同人ゲームを売るために東方の二次創作に頼る時点で間違っておる!
東方シリーズの作者ZUN氏は、自分でオリジナルのブランドを誕生させたことが成功の鍵
あの人は誰かの同人ゲームの二次創作で勝負を掛けたわけではなく
自分のゲーム、自分の音楽で勝負に出た
それで東方シリーズというオリジナルブランドを確立

後に続く者がZUN氏にあやかって東方の二次創作ゲームを作るとかさ
それこそ保身に頼りすぎ
自分で勝負に出ようとしない
オリジナルのキャラで、オリジナルのゲームジャンル(弾幕シューティング)を誕生させる
これが必要なんだよ
0836名前は開発中のものです。
垢版 |
2023/05/28(日) 22:02:08.45ID:EUBTvYrj
思う所あって、作業中断してポリゴンで3Dダンジョン作ってみたくなった。
3Dなんて30~40年前にIF文とLINE文で頑張ったのが最後で、一切触れてこなかった分野だからメインループ構築が最初の難関・・・と思ったのだけど、公式で入門プログラムが用意してあった。10年以上前から先読みされているとか、準備が良すぎる。
マップデータに対して、実際の表示が何故か左右反転しているのが気になるからそれを解消したいけれど、stateの値が即値でそれが目障りだからenumで差し替え・・・という段階。

はやく3D命令を把握したいです。
0839836
垢版 |
2023/06/16(金) 09:37:03.96ID:xMFFSWqc
# 半ば日記です。

 公式の3Dサンプル1の迷路をいじることで、初めて3Dプログラム読み書きしているのですが。
 実際の作画が通り道をチューブ状に表示していたのを、文字通り壁ブロックを表示するように変更。
 その為にBlenderの初期画面でサンプル表示される立方体を少し加工してエクスポート。ついでにMV1変換の過程でまるで知らなかったライティングで痛い目に遭う。おかげで暗く明減するアニメ効果を実装。
 今は両脇がまるで見えない問題の解決策として、視点位置を現在の自スペース中心から後方に移動して視界を確保。でもそのまま左右を向くと物陰から枝道を覗く視点になってしまうので、視点移動を実装中。少数は避けて通ったint派なので、中学生に戻った気分です。

 そして根本的なこと。
 もしかして、3Dって座標系違いますよね?
 2Dの画面では左上の原点(0,0)から右下に加算していきますが、3Dのxz面(迷路的には床面)は原点(0,0)が右上に伸びて行くイメージ。だから、迷路を定義しているchar Map[BLOCK_NUM_Z][BLOCK_NUM_X] が上源反転している様に見えたというか。
 状況証拠の蓄積からの推理であって、間違って確信すると後々恥ずかしいのでここで白状してしまいますが。
0843名前は開発中のものです。
垢版 |
2023/07/01(土) 01:41:02.43ID:wIHay33c
 モデルの座標やスケール値を読み出せるのに、なんでサイズを読み出す命令がないんだろう・・・。
 Blenderと往復して壁のデータ作って変換して持ち込んでいるけれど、何もいじらないと中心点が原点扱いになるから、Blenderで上に持ち上げて底面がゼロ原点になるようにいじらないといかん。

 マテリアルも一発OKで持ち込めたけれど、データサイズから察するにfbx→MV1ではテクスチャを持ち込めないみたいだから、やり方も勉強しないと。Blenderならアドオンで他形式からでも持ち込めるよね、多分。
 と言うかビュア起動が面倒!変換はコマンドラインでどうにかなりませんかね。
0844名前は開発中のものです。
垢版 |
2023/07/05(水) 04:00:46.59ID:BIKkgo+z
公式に確認してお許しが出たので、晒す。

色々とままならないままなのですが。
・照度が上がらない!
画面をもう少し明るくしたいのですが、ライト関係への理解がまだまだ浅い・・・。
・動作が少し重い。
これでも改善したのですが。1動作60コマなのがまずいかな。
・暗くて見えませんが、壁のデザインは古代ギリシャ建築を参考にしたのにローマ風だなあ・・・とBlender画面見ながら思ったのですが、実際のゲーム画面だと何故かSF風味。造り手としては、なんで!?どうして!?意味分からん!状態です。
・壁が点滅する。
解像度を上げたら軽減しましたが、アンチエイリアスが満足行くレベルでない様子。どうすれバインダー・・・これがSF風味に一役買っているんだろうなあ。
0847名前は開発中のものです。
垢版 |
2023/08/29(火) 07:55:34.91ID:GegZBjGh
アンチエイリアスが全然効かねえ・・・二次元はGraphFilter()の解説通りにすればまあ解決だけれど、同じ手法を三次元では全然効果ない。
シェーダーに手を出さないとアカンのか・・・? ま、いっか。
0849名前は開発中のものです。
垢版 |
2023/08/30(水) 23:45:36.49ID:Spq7xqXn
>>847
テクスチャじゃなくてポリゴン描画の輪郭にアンチエイリアスかけるには
DxLib_Initの前にSetFullSceneAntiAliasingModeで
マルチサンプルのレベルとクオリティを指定する必要がある
(デフォルトだとOFFになってる)
ちなみに有効にした場合は描画先を必ずDX_SCREEN_BACKにして
ScreenFlipで表示を切り替えるダブルバッファリングが必須になる
0850名前は開発中のものです。
垢版 |
2023/08/31(木) 00:11:42.58ID:jIc4+UPV
あと3Dモデルのテクスチャにアンチエイリアスかけたいなら
事前にDxLibModelViewerに読み込んで、テクスチャの所の
フィルタリングモードで設定してMV1で保存しておけばいい

3DファイルをいじりたくないならMV1SetTextureSampleFilterModeで
プログラムからでも設定は変えれる
0851名前は開発中のものです。
垢版 |
2023/09/01(金) 01:15:49.70ID:ukSS7PqJ
>>849 >>850
すいませんボケかましてしまいました。
3D関連だからと、3Dのところばかり読み直していました。
現在データ構造の見直し中で半端に書き直してしまいコンパイル出来ない状態ですが、一文を追加しておきました。
つぶやきを拾って下さって、ありがとうございました。
0854名前は開発中のものです。
垢版 |
2023/11/11(土) 15:34:22.92ID:yarVc01O
 三角関数の生数字0~1未満のVECTORを2つ、その中点を取りたいのですが単純にVAdd()で加算してVScale()で0.5f倍するだけだと何かうまく行かない。

 もう少し具体的には、空中をふらつく視線と90度旋回を別々にやるとうまくいくのに、同時にやろうとすると70~80度旋回で完了してしまう感じ。
 まあもっとも、角度degをDX_PI_F/180でradにしないといけない所を90で割っていた私なので、またポカしているだけなのだろう。
0855836
垢版 |
2024/02/12(月) 05:45:50.17ID:FMt8IkOD
初めての3Dプログラミングで実数に四苦八苦していましたが、結局中身はintで下駄を履いた角度で保持することになりました。
まだ少し実数で計算する所もあるけれど、取り敢えず再度コンパイルが通るようになったので肩の荷を一つ下ろせました。

ダンジョン徘徊RPGを作りたいけど、先立つ技術がないとシンドいですね(^^;
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 2996日 23時間 36分 41秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はUPLIFT会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《UPLIFT会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
4 USD/mon. から匿名でご購入いただけます。

▼ UPLIFT会員登録はこちら ▼
https://uplift.5ch.net/

▼ UPLIFTログインはこちら ▼
https://uplift.5ch.net/login
レス数が1000を超えています。これ以上書き込みはできません。

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