ページ 11

LoadDivGraph相当のコード

Posted: 2010年10月09日(土) 16:29
by みけCAT
無謀かもしれませんが、龍神録をDXライブラリを使わずに作ってみようとしています。
しかし、4章でつまずきました。
メインのループに入ってくれません。
メインのループとは、GameThread関数内のwhileのことです。
いろいろ調べてみたところ、
自作LoadDivGraph関数の中の
output[yy*x+xx].bmp=bmp;
output[yy*x+xx].x=xx*sx;
output[yy*x+xx].sizex=sx;
output[yy*x+xx].y=yy*sy;
output[yy*x+xx].sizey=sy;
のところをコメントアウトすると一応動いてくれました。
どこが悪いか教えてくださる人がいたら幸いです。
プロジェクトは添付しました。
画像は「プロジェクトを一括ダウンロード」の中の画像を同名でbmpに変換したものを使用しています。
プロジェクトの変換はhttp://sourceforge.jp/projects/sfnet_prjconverter/を使用しました。

Re:LoadDivGraph相当のコード

Posted: 2010年10月09日(土) 16:56
by softya
extern gazou img_ch[2][12];でリンクエラーが出ますが何か足らないってことでしょうか?
実体は何処で定義されていますか?

Re:LoadDivGraph相当のコード

Posted: 2010年10月09日(土) 16:58
by みけCAT
main.cpp内の
int img_ch[2][12];    //キャラクタ画像9枚分 X2(変身用)
gazou img_ch[2][12];    //キャラクタ画像9枚分 X2(変身用)
に直したらうまくいきました。
ありがとうございました。
透過処理とかはまたあとで考えます。

Re:LoadDivGraph相当のコード

Posted: 2010年10月09日(土) 17:01
by みけCAT
とりあえず実行結果に近くなるようにfunction.cppを修正しました。
DrawRotaGraphF関数内です。
修正前
StretchBlt(to,x,y,
        (int)(graph->sizex*ExtRate),(int)(graph->sizey*ExtRate),
        gazoufordraw,graph->x,graph->y,graph->sizex,graph->sizey,
        SRCCOPY);
修正後
StretchBlt(to,x-graph->sizex/2,y-graph->sizey/2,
        (int)(graph->sizex*ExtRate),(int)(graph->sizey*ExtRate),
        gazoufordraw,graph->x,graph->y,graph->sizex,graph->sizey,
        SRCCOPY);