C言語 DXLib MMDステージ表示
C言語初心者です
DXLibでMMDの空色町の読み込み?できません・・
int MH=MV1LoadModel(“ファイル1/ファイル2/名前.x”);
って感じで読み込んでいるんですが
ずっとマウスが砂時計マークです
int MH=MV1LoadModel(“ファイル1/ファイル2/名前.x”);
って感じで読み込んでいるんですが
ずっとマウスが砂時計マークです
前後にprintfDx(“A”);を入れたらどっちも反応せず砂時計マークでした
LoadModelと必要な命令以外を消しても同じでした
スペックは足りていると思います
使用しているソフトはVisualC++2010Express
プロジェクト?はhttp://dixq.net/g/3d_01.html
ステージはhttp://www.nicovideo.jp/watch/sm19376319を使用させてもらってます
おおよそファイルのパスが合っていないです。
モデルファイルのパスの指定から見ると、実行ファイルとdatディレクトリが同じディレクトリにないといけないのですがそうなっていないんじゃないでしょうか。VC++ならreleaseやらdebugやらのディレクトリから実行すると思うので親ディレクトリから辿って”../dat/空色町/sorairo.x”あたりだと思いますが。推測なので詳しいパスは自分の環境で調べてください。
多分MV1DrawModel( ModelHandle );をハンドルがエラー値なのに呼び出すからおかしな挙動になっています。
パスの指定が間違っていて読み込みができないことを考慮せず、エラーチェックすらしていないです。
DxLib_Init()の戻り値もチェックしていないし、「短く書ける」ことを自慢したがってエラーチェックを忘れる初心者みたいな管理人ですね。読みづらいですし短ければいいというものではありません。エラーチェックはせめて
if (ModelHandle!=-1) MV1DrawModel( ModelHandle );
程度はして欲しいですね。それからif (DxLib_Init()<0) return 1;なんてのは当たり前すぎて忘れる理由が見当たりません。
それから砂時計の話ですが、おかしな挙動はおかしなコードのサインです。見えなくなればいいわけではなく可能な限り原因を探って解消するべきです。
解決しました
ありがとうございますm(_ _)m
nicokyouyouさん
1.
砂時計マーク
暴走してる。
2.
int MH=MV1LoadModel(“ファイル1/ファイル2/名前.x”);
正確に書く。
普通
暴走はプログラムエラー。
//(“dat/空色町/sorairo.x”);
(“c:dat\空色町\sorairo.x”);
かな?