DXライブラリ 総合スレッド その19 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
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/ ポインタは簡単だからポインタ・関数ポインタと同等の機能が他の言語でも当たり前に使われている
ゲームだとガベコレ回避にRAIIでメモリを扱うし結局やってることは同じ
バッファコピーをforループでするより組み込み関数memcpy()の方が速いとか、
ポインタの利点はそんな微々たる最適化に使えるかどうかだな
もしその粒度で高速化したいならc++のクラスとかSTLは全部使えん ダメだー、頭が悪くてわからない!
誰か数学に強い人、計算方法教えてくれませんか、、、
1マスのサイズが16×16、そのマスを縦横並べて構成されている
碁盤上のフィールド上で、1マスと同じ16×16のサイズのプレイヤーが
縦、横、斜めと縦横無尽に1ドットずつ移動できるとする。
しかし、そのプレイヤーが移動を辞めてストップするたびに、
その碁盤の区切りにプレイヤーを綺麗に合わせるために
プレイヤーのx、y座標を16で割れる数に修正したい。
つまり、止まるたびに配置を調整されるようにしたいんだよ。
でもどうすればプレイヤーのその時のx、y座標の数値から、
一番移動修正が少なくて済む16の倍数を割り出せるのかが思いつかない、、、
なんか良い計算方法あります? プレイヤーが移動をやめるということは、方向キーの入力をやめるということでいいのか?
移動してる最中は上下左右斜め自由自在に動けるけど
キー入力をやめたら最寄りのマスに合わせて止まるってこと? 602のいうように16で整数除算すりゃいいんだよ
X軸座標が0から始まるとして、プレイヤーのX軸座標を16で除算した結果が、0から連番のマス位置だ
マス位置の番号に16を掛ければ、そのマスの基点(左端のX軸座標)が求められるからプレイヤーのX軸座標を合わせりゃいい
Y軸も同じ考え方 >>600
座標をfloat型などの小数型に変換(型キャスト)して、
16.0fや16.0で割り、
小数第1位を四捨五入して、整数型に変換(型キャスト)する
四捨五入の方法や分からん言葉はググルべし 整数型として、
プレイヤーの「中心座標」を、マス幅(16)で割る? うあ、リロードしてなかった
恥ずかしい
それはともかく、移動をやめたときに適当な座標に合わせるって挙動いいな
自分も機会があったらパクるわ 16で割るだけだと移動やめたとたんにカクッと移動しそうな感じするけど >>608
実際にやるなら、
・入力ニュートラルになってから一定時間立つと自動移動フラグがON
・自動移動がONの間、少しずつ対象座標に近づく(一定ドットずつなりイージングなり)
・移動完了または入力があったら自動移動フラグOFF
かな うわー、起きたら、
みんなありがとうございます!
こんなにアイデアっていうか、計算方法出してもらえるなんて
過疎過疎なんで返事無いと思ってましたんで
>>601のおっしゃる通りで、イメージとしては、
将棋版の上でプレイヤーが将棋のコマを好きに移動させられるけど、
移動を止めるたびに、そのコマを盤上の最寄りのマスにきっちり合わせて止める
って感じです。
マスもコマも16×16で同じサイズなので、
一番大きく修正される状態でも半分の8ドットなはずなんで
そこまで瞬間移動に見えないかなと思ってます
とりあえず、>>602さんと>>603さんのが一番理解しやすかったんで
それが最良っぽいんで、それでやってみます。
あ、プレイヤーの移動数値、座標位置ともにdouble型の小数点でやってるんで
>>604さんの案でいえば、キャスト変換しないほうが(すでに小数点なので)良い??
逆で、その都度int型にキャスト変換してから>>602さんの言う16で整数除算した方がいい?
自分ではよくわからない、、 >>610
やり方はいくつか上がったんだから、想定する入出力例をいくつか紙に描いてみて、
コンソールアプリでもビルドして、どのやり方が適切か計算結果を確認してみりゃいい。
一番良いやり方は当人しか分からん。
上がっている方法について少し付言すると、
整数型の割り算は小数が切り捨てられる。
また四捨五入する値が負の場合は、半分の値を引く必要がある 整数で割るのはマップデータの当たり判定のほか
パズルゲームとかマウスでアイテム欄から選択とか
いろいろ応用が利くので慣れとくといいかも 単純に「座標なら整数型で持ってるだろう」という前提で
みんな話してたと思うよ
座標みたいに整数で出力される値でも
内部的にはdoubleで持つというのは、理由があるなら別に悪いことじゃない
まあfloatは無いかな… doubleじゃなくてlong longにして100で割って下二桁を小数点として扱えば? 今始まった話じゃないんだけど。
ttps://i.imgur.com/U9YOAm8.png
DXライブラリ関係だけ曖昧と指摘されて、コンパイル出来ない。
思い出した様にたま〜〜〜に出て、一度終了してから起動すると出ない。
出ない時は全然出ないので再現性がなく、作者様にお伺い立て様もなく。
VisualStudio2017Comunityですが、同じ症状の人います? もともとVisualStudioは外から来たライブラリを激しく嫌う習性がある
if文の括弧つけ忘れとかセミコロン置き忘れのようなライブラリと関係なさそうなミスでも
「おめーの関数あいまいなんだよ」みたいな態度を取って文句を言ってくる ABCDEFGH
1□□□□□□□□
2□□□□□/□□
3□□□□//□□
4□□□//□□□
5□□□/□□□□
6□□□□□□□□ DXライブラリ関係ない話題ですんません
2DのRPGの話なんですが
普段は上下左右の4方向にしか移動できないタイプのゲームで
マップで坂道を表現するときの処理の仕方なんですけど、どんな風にやればいいかなと
マップの侵入不可とかの地形データの中に坂道フラグみたいなのを設定して
移動の時にそれを参照して、現在位置の地形が坂道の場合、斜めに移動する
ってやったら>>618の図で言うところ
のぼる時は 4C→4D→3E→2F→1Gになり
戻ろうとすると1Gは平面で1Fに行ってしまう
また階段途中で引き返しても4Dから5Cに行っちゃう
要するに、坂道に足を踏み入れた時と、坂道から抜け出す時の座標のずれが気になるんですよ >>619
横視点?
上からの平面マップで疑似斜め地形を表現したいってこと?
重力はあるのかな? >>620
横視点というより上視点でしょうか
普通にRPGツクールシリーズのマップみたいなイメージです
坂や階段を表現するときにどうしたらいいかなーと
今のままでも5のラインから登って行けば2のラインに出て
2のラインから降りていけば5のラインにたどり着くんですけど
先述の通り途中で引き返したりすると違和感が出てきてしまって…
気にしすぎなだけかもなんですが 真上視点で斜めに移動するってのがイマイチ分からない >>622
FF6の町マップにある階段のような挙動をイメージしてます なるほど把握
マップチップで考えずに、
単純にキャラクターの表示座標を上方向にズラすんじゃダメ?
もちろんそのままでは背景との整合性が取れなくなるから
マップチップの方をうまく調整しなきゃいけないけど 5Cから1Gまでは一直線移動で途中から横には出られないようにすべきだね。
エスカレーターの出入り口みたいにする。エスカレーター内は左右or上下で自力移動だけど。
途中で降りられるようにするとおかしくなるよ。 いまさら遅いと思うけど、グリッドベースで進行するゲームの場合キャラの位置もグリッド座標で持つようにして
キャラ絵は接触判定とか無視して自動で指定位置に移動するほうがいい
落ちものパズルとかターン制ストラテジーがだいたいこんな感じになってる >>616
む、そーだったのか!
でもwarningはあったとしてもerrorはない状態でも出るんですよね。
再起動してビルドするとスンナリ通ります。 visual studioといってもC++コンパイラだけでしょ
テンプレートのエラーなんかでも的外れなエラーをずらずら吐き出すし VisualStudio2015で使ってるけどたまにあいまいですって出るなあ
ビルド通らなくなったかは覚えてないけど気持ち悪い以外に特に問題はないみたいだから気にしないようにしてる 2013でやってるけどあいまい出て気持ち悪かったなぁ、ctrlk+ctrldで何故か直ってたが 過疎ってたから何らかの話題出したかっただけやですまんな ios対応したんか
mac持ってないとビルドできないのかな クロスコンパイルのこと言ってるのか?
DXLibじゃ無理だろ。 ios対応したのかー
まぁ、俺の昔作ったプログラムは、あることがしたくて、dxlibの非公開APIとwindowsAPIを直接叩いているから、移植は難しいだろうなぁ >>615
何度見直しても問題点が見付からなかったので、発生した関数内で呼び出している関数のプロトタイプで
extern void test( int ,int);
としていたのを
extern void tese( int a ,int b);
にしたら、赤線が取り敢えず消えた。 型だけじゃなく仮変数も付けた方が良いのか。
他にも発生条件あるんだろうなあ。 本家サイトの掲示板で5chに自分の悪口書かれてるって騒いでる奴がいたから、
何を書かれてるのか見にきたら、別に何も書かれてなくてワロタ。
それどころか7ヶ月以上書き込みが無い…。
別のスレで書かれてるのか?
それとも総合失調症ぎみの人なのだろうか?
「ネットストーカーが」とか書き込んでるから、ちょっとヤバそうなそうな人の気配はしたが果たして…。
青葉の件から、ああいう書き込み見るとマジで不安になっちゃうよ…。 青葉真司、京アニの放火の犯人(と今の所されてる男)。
ネタや煽りで「ネットストーカー」とか書き込んでるんなら性格or頭が悪いってだけで、
実質的な害は無い(気分は悪いけどね)からまあいいんだけどさ。
世の中には少数だけど青葉みたいに本気で頭おかしい人が居るからね。
文面だけじゃ本気なのかネタなのか区別つかんし…。
こことか2chとかアングラな掲示板ならともかく、
平和な本家サイトの掲示板では使う言葉は選んで欲しいよ。
レスバしたいんなら、他でやればいいのに…。 ios対応ってどういうことですか?
だって、DXライブラリで作ったゲームって
directX必須じゃなかった??
アイフォンで動くゲームにビルドできるんですか? Android版とios版はOpenGL ESで描画してる。
ただし関数名はWindows版とまったく一緒なので、c++ソースが共用出来るのがメリットかな。
※OSに依存している部分は書き換える必要が有り
あと、当たり前だけどiosアプリ作るにはMacでXcode使ってビルドする必要がある。
っていうか本家HPに全部説明書いてありますがな…。 >>644
その人は、通称「虐殺ちゃん」といって
プログラマのQAサイトteratailやyahoo知恵袋、おしえてgooで騒いでる超問題児
teratailのスレでウォッチされてる >>652
teratailのスレ見てきた。
本当に同一人物なら相当ヤバいねあの人。
文章見る限りそんなに知能がたりないわけでもなさそう(人としてバカだし性格は糞だが…)なのに、
プログラミングに関しては本当に無能通りこして障害レベルだね…。
脳みその構造どうなってるんだろ?
ああゆうのが発達障害ってやつなのかな…。
それとも文章はギリギリ健常者だけど、他は知的障害とかあるのか?
日本語は通じてるようだが、プログラミングに関しての所は全く読めてない感じだもんなー。
バカのふりして遊んでるだけならまだいいんだが、なんかガチっぽいのもなぁ…。
しかも、執念も異常っぽいから、
何十年もかけて善良なひとを騙してかき集めたコードを繋ぎ合わせて、
何かゲームのようなもの(もちろんバグらだけ)を完成させるような気もするのがなお怖い…。 >>654
こんにちは、虐殺ちゃんですか?
こんな所まで出張とは精が出ますね。
その時間を使って、Cの基礎を勉強なさったらどうですか?
そして、あなた多分「怖い」の意味を理解できてないですよ、
日本語も不自由なようですね…。
一回辞書で調べてみてください。紙の本が面倒なら、google検索等で
「怖い 意味」と入れるとWebの辞書のページがヒットします。
多分あなたの知らない使い方が出てきますよ。
言葉には一つの単語でも色んな意味があるんです。
とりあえず、気になったら調べる癖をつけましょう。
そうすればプログラミングも上達するはずです。
頑張ってください。(なるべく人に迷惑をかけずにね...) Dxlibつかってゲームのロジックとか設計とか組むのは面白いけどゲームとして完成しない
かれこれ5年以上同じ事続けてる >>658
作ってるのが楽しいなら、別にそれでいいんじゃない。
そもそゲームってファミコン時代でも数人がかりで、数ヵ月〜数年かけてつくるもんだし、
一人で趣味で作ってたら十年かかってもおかしくないよ。
完成させるのが目的なら、とりあえず簡単なプログラムで済むゲームにして、
スケジュール管理もしっかりした方がいいとはおもうけどね。 まぁエンジンのが効率いいわな・・・
基礎的な部分は全部出来合いの物があるみたいだし
DXライブラリって結局全部自分で組めっていってるようなもんだよな? DXライブラリも一応ゲームエンジンに分類はされてるよ。
ただまあ、描画・サウンド・キー入力位しかサポートしてないからなぁ...。(物理エンジンはMMDのモデルのみ対応)
「Unity」「Unreal Engine」とかの開発環境付きのゲームエンジンに比べたらかなり手間ね。
(DirectXを直に触るよりは格段に楽だけどさ。)
ワールドマップを表示するだけでも、
「プログラムコード内でマップデータを数値入力する」
「既存のツールのファイルを読み込むプログラムを書く」
「独自ツール開発してファイルを読み込むプログラムを書く」
のどれかをしないといけないからね。
(専用の2Dマップエディタとか3Dマップエディタがあればかなり効率よくなると思うのだが…)
プログラミングが好きじゃないなら「Unity」とか「Unreal Engine」「ツクール」を使った方がいいよね。
あと利点としてはライセンス料かな、
確か「Unity」とかは無料版もあるけど売り上げがある程度あるなら金払わなきゃいけないからな。 画面を出す仕組みがデフォで組み込まれてるから一応ゲームエンジンといえなくもないが、
やはりライブラリを名乗ってる以上ライブラリな気はするw MMDに対応してるおかげでモーション作りやすいのは利点かな
UE4のcontrol rigも進歩してるけど俺のノートPCじゃUE4は重すぎる
マシン買い換えるまではDXだな エンジンっていうほどのフレームワークは持ってないでしょ。
マルチメディアライブラリ以外の何ものでもない。 TOPに置いてある14歳からの〜シリーズを見たせいなのか
DXライブラリが子供向けのゆとり仕様だと思ってる奴がいて腹立ったわ
Unityとかのがよっぽどお手軽だよな・・・? >>665
Wikiでもゲームエンジンに分類されちゃってるからなー。
(広義の意味でとは書いてあるが)
細かく言うとゲームに特化したミドルウェアなんだろうが…。
>>666
とりあえずゲーム作りたいならUnityの方がお手軽ね。
DXライブラリはC言語の基本さえわかれば、すぐ使えるって意味ではお手軽だけど、
それってCは出来る事前提だからね。
あと、マシンスペックはDXの方が低性能でもうごくから、そこもお手軽かもね。
UnityやUnreal Engineをサクサク動かそうと思うと結構スペック要求される。 やっぱそういう認識だよな
ほんとに単純なゲームならCだけできるってのは確かにそうだけど
結局ある程度以上となるとオブジェクト指向で組まないと逆に複雑になる気もするし うん、大規模なゲーム作るなクラス使わんと無理だと思う。
ただDX自体がC言語の文法だけで書けるようになってるから、
大体のDXの入門系のサイトはCの書き方になっちゃてるんだよね。
c++の文法で始めた方が後々楽だと思うんだけどね…。 C言語用のこういうライブラリってほかはもうSDLとか
古典ライブラリしかないし、気に入っているけどね。
インターフェースまで持ってっちゃうんで、そこを便利と見るか
余計と見るかは分かれるだろうけど。 非同期読み込みがonの状態で作成したグラフィックハンドルについて質問です。
存在しない画像ファイル名をLoadGraphの引数に渡したのですが、戻り値が-1ではありませんでした。
おそらく非同期読み込み用のフラグをハンドルに持たせているからなのでは?と思っているのですが、
DXライブラリにハンドルの作成失敗を確認することができる関数は存在しますか? Android Studioにも対応したみたいね。
AdMobにも対応できるのかな?
NativeActivityだから設定一筋縄でいきそうにないけど…。 >>674
断言できるという事はDXライブラリの内部処理に詳しい方ですか?
すいませんが、対応できない技術的な理由を教えていただけませんか?
NativeActivity自体はAndroid StudioならAdMob対応させる方法あるみたいですけど…、
DXライブラリってAdMobが使えなくなるような何か特殊な処理をしてるんでしょうか? >>674
色々AdMob試してたら、バナータイプのテスト広告はエミュレーター・実機とも表示されましたが…
本番の広告は表示されないって事でしょうか?
正しく広告収益にカウントされないとか、そう言った問題があるんですかね? 管理人、前はゲームの自体のプログラミングの相談にも親切に答えてたけど、
最近はゲームの処理は自分で考えろってスタンスになったみたいね。
教えてもコードコピペだけして全く成長しない人とか、
自分で考えたり調べたりせずに質問ばかりする人が増えたからしょうがないか…。
そもそもマニュアルやサンプルプログラムすら目を通してるか怪しい人もいるしな。 初心者の相手はキリがないからね
ましてやゲームロジックまで面倒みれないよ 実際掲示板見ててヒヤヒヤするよ。あまりにも無知な上に礼儀知らずな奴がいて。
しょうもない無礼な質問で管理人さんの手をわずらわせないで欲しいよ。
管理人さんはお前の母親じゃないっての。 礼儀もまた知識。
どんな無礼かと思い覗けば、総てでなくとも自治も出来ている様子。
まあまあ、悪くない状態じゃないかな?
# 個人的にも色々やらかした事があるので胸が痛い。 あまりに無知で変な質問は管理人が答える前に他の人が答えるようになったけど、
その返信内容が結構厳しめだったりするから、
それがまた雰囲気悪くしてる原因のような気もしなくもない。
まあ、厳しく言われてもしょうがない奴がいるのが大元の原因なんだけども…。 技術的な無知もアレなんだけど
そういう人に限ってまた態度が横柄というかため口というか…
「あとこれもついでに訊くんだけどさー」みたいなどういう育ち方したのかなと思う口のきき方。
そこも問題なんじゃないのかな。中高生なんだと思うが。 久しぶりに見たらジオメトリシェーダーに対応したんだな
でも、うーん使わねー・・・・・モデルに毛でも生やすか?
まあ選択の幅が広がるのはいいか PCのスペック云々ってしつこくPCのせいにしてる人に、
「PCのスペックじゃなくて、お前のスペックが足らないんだよ」って
みんなハッキリ言わないのは優しさなんだろうけど、余計残酷な気もするな…。
永遠に人や物のせいにして、自分自信の改善は何もできないんだもん。 >>687
リファクタリングってか最適化って、地味な作業だしねえ。
ループの外へ変動しない計算式を出すだけでもそれなりに軽くなるものだけど、今はコンパイラが
勝手にやってくれるんだっけ?
DXlib関係だと、3万ばかりの点を打たないといけなかったのを小円で打とうとしたら激しく重くなったので、
今絶賛思考ループ中です。
#あ、DXlib的には画像貼り付ける方が速いかも・・・。 5chに対して言ってるなら最初から品位なんてないぞ。
DXの掲示板に対して言ってるなら、回答無視して同じような質問繰り返してる奴が一番嫌味な奴だ。
嫌味ってのは「人に不快な感じを与える言葉や態度」の事だからな。 なんとか小手先のごまかしで最後まで逃げ切って作ろうとしてるんだよねこの人は。
この間違った情熱をまともな方向に使えばもっと早く作りたいものが作れるんじゃないかと思うが。
とにかくいまどきのPCでサンプル動かしてるくらいでスペックが問題になんてなるわけないだろうと。
問題が起きたらまず自分のプログラムの構造を疑えよと思うんだけどこの人はもうこのスタイルを変える気ないよな。 >>692
彼は通称「虐殺くん」といって3年くらい前から
いろんな質問サイトで迷惑かけまくってるひとよ
プログラミングを少なくとも5年以上勉強しているのに
if文もfor文も正しく使いこなせない勇者 DXLib使ったオープンソースのSTGってないですか? DXLib使ったオープンソースのACTないかな?
勉強したい 3Dのアクションサンプルなら普通に公式ページにあるよ。
↓「Sword Bout」ってやつ
https://dxlib.xsrv.jp/SwordBout/
ソースコードも3Dデータもダウンロードできる。 なんか「虐殺」の事に触れると急に別の話題書き込むやつ現れるよな。
ここも監視してんのかね?
ここは寺尾スレと違って流れ遅いから無駄だと思うがね…。 ■ このスレッドは過去ログ倉庫に格納されています