トップページ > 過去ログ > 記事閲覧
LoadDivGraph関数について
名前:D.F 日時: 2008/01/15 15:23

こんにちは。一点質問させてください。 BorlandC++ Compiler 5.5でC言語のみでプログラミングしています。 ゲームに使用するエフェクトを構造体として struct EffectData{ int graph[20]; int num; int size_x; int size_y; }; struct EffectData effect[10]; こんな感じに書き、 LoadDivGraph(ファイル名1,8,8,1,96,96,effect[0].graph); LoadDivGraph(ファイル名2,8,8,1,96,96,effect[1].graph); LoadDivGraph(ファイル名3,8,8,1,96,96,effect[2].graph); を実行したところ、1つ目と、2つ目は正常に格納されるのですが、 最後の構造体メンバにはなぜか、ファイル名3の画像の途中からしか格納されません。 for(int i=0;i<8;i=i+1){   DrawGraph(i*96,0,effect[2].graph[i],FALSE); } を実行してみると、iの値が5のときからグラフィックが表示され、それ以前は表示されません。(effect[0]とeffect[1]は問題なく表示されます。) グラフィックファイルはどれもpng形式で768*96のサイズです。画像を他のpngファイルと差し替えても同じ結果でした。 これはデータが入っていないということでしょうか?。 ちなみに、構造体とは別に単独でint test[10];を用意し、上記のeffect[2].graphの部分と変えて表示させてみましたがやはり同じでした。 何卒、ご教授下さいませ。

Page: 1 |

Re: LoadDivGraph関数について ( No.1 )
名前:お父さん 日時:2008/01/15 19:08

D.Fさん、はじめまして D.Fさんの環境でうまくいかなかった原因はわかりませんが、私の環境で以下のプログラムにて試してみましたと ころ、画像ファイルは3つとも正常に表示されました。 #include "DxLib.h" int WINAPI WinMain(HINSTANCE hI, HINSTANCE hp, LPSTR lpC, int nC) { SetGraphMode(800,600,16); // 画面モードのセット ChangeWindowMode(TRUE); // ウィンドウモードに指定 if(DxLib_Init() == -1) return -1; // DXライブラリ初期化 SetUse3DFlag(TRUE); // 3D機能を使う struct EffectData{ int graph[20]; int num; int size_x; int size_y; }; struct EffectData effect[10]; LoadDivGraph("file1.png",8,8,1,96,96,effect[0].graph); LoadDivGraph("file2.png",8,8,1,96,96,effect[1].graph); LoadDivGraph("file3.png",8,8,1,96,96,effect[2].graph); for(int a=0;a<3;a++){ for(int i=0;i<8;i=i+1){ DrawGraph(i*96,a*100,effect[a].graph[i],FALSE); } } WaitKey(); DxLib_End(); return 0; } コンパイラはBCC5.5、DxLibraryのバージョンは、2.22fです。 ちゃんとした回答になっていなくて、申し訳ありませんが、よろしかったら参考になさってください。
Re: LoadDivGraph関数について ( No.2 )
名前:D.F 日時:2008/01/16 02:35

お父さんさん初めまして。 レスありがとうございます。 作成していただいたプログラムを早速実行してみました。 すると自分の環境でも正常に表示されました。 やはり自分のプログラムに問題があるようです。 もう少し細かいところを見落としが無いか探ってみようと思います。
Re: LoadDivGraph関数について ( No.3 )
名前:D.F 日時:2008/01/16 14:18

ちょっとした発見がありましたので追記を・・・ 本題の画像読み込めないプログラムにダミーとして 最後にもうひとつ(4つ目の)LoadDivGraphを 追加すると、三番目の LoadDivGraph(ファイル名3,8,8,1,96,96,effect[2].graph); が正常に読み込めました(4つ目はだめでした)。 ほかの場所のLoadDivGraphやLoadGraphも使い方 を間違えていないか見直しましたが大丈夫な様です。 メモリの関係でしょうか。 実行する上ではこれで問題なさそうなのですが・・ コードを全て載せられず恐縮ですが 理屈が分からない分不安なのでこの現象が 分かられる方がいらっしゃいましたら 宜しくお願いいたします。

Page: 1 |