ページ 1 / 1
ファイル分割について
Posted: 2010年9月27日(月) 04:46
by polpol
ファイル分割について勉強中なのですが
このマニュアルの四角君の移動ルーチンを
コードを分割して別ファイルに記述したいのですがうまくいきません
→
http://homepage2.nifty.com/natupaji/DxL ... re1_2.html
書いたファイルを置いておくので原因が分かる方よろしくお願いします
http://www1.axfc.net/uploader/H/so/116477.zip
Re:ファイル分割について
Posted: 2010年9月27日(月) 05:16
by DVDM
>>polpolさん
> コードを分割して別ファイルに記述したいのですがうまくいきません
何がどううまくいかないのでしょうか。
リンク先のプロジェクトをダウンロードして実行してみましたが
画像も表示されますし、キー入力で画像も動きました。
Re:ファイル分割について
Posted: 2010年9月27日(月) 05:21
by polpol
>>DVDMさん
マニュアルどうりに書いてるので上に緑の敵が表示されるはず
なんですが表示されません
Re:ファイル分割について
Posted: 2010年9月27日(月) 05:30
by DVDM
>>polpolさん
四角君の移動ルーチンが別ファイルに分かれているようですが、
肝心の sikaku 関数が呼ばれていないのが原因ではないでしょうか。
sikaku 関数の定義が、WinMain 関数内で行われているのが気になります。
void sikaku(int SikakuMuki,int SikakuX,int SikakuY,int SikakuGraph);
int WINAPI WinMain(~~)
{
}
としておいた方がいいと思います。
Re:ファイル分割について
Posted: 2010年9月27日(月) 05:40
by polpol
>>DVDMさん
void sikaku(int SikakuMuki,int SikakuX,int SikakuY,int SikakuGraph);
int WINAPI WinMain(~~)
{
void sikaku(int SikakuMuki,int SikakuX,int SikakuY,int SikakuGraph);
}
と書きましたがやはり表示されませんでした。。
Re:ファイル分割について
Posted: 2010年9月27日(月) 05:54
by DVDM
>>polpolさん
関数の宣言や定義と、関数の呼び出しは別物なので、WinMain 関数内の
void sikaku(int SikakuMuki,int SikakuX,int SikakuY,int SikakuGraph); は、
関数を呼び出していることにはなりません。
WinMain 関数に、sikaku(第一引数, 第二引数, 第三引数, 第四引数);
と書けば、描画されると思います。
描画されなくてはやる気持ちも解りますが、関数は大事なところですので
もう一度関数についての勉強を強く推奨致します。
参考URL:
http://www.geocities.jp/ky_webid/c/008.html
Re:ファイル分割について
Posted: 2010年9月27日(月) 23:55
by polpol
>WinMain 関数に、sikaku(第一引数, 第二引数, 第三引数, 第四引数);
と書けば、
sikaku(SikakuMuki,SikakuX,SikakuY,SikakuGraph);と書けば
画像は表示されるようになったのですが
その場で止まったまま動きません。
なぜでしょう・・・
Re:ファイル分割について
Posted: 2010年9月28日(火) 00:09
by たかぎ
> なぜでしょう・・・
勉強不足です。
一から十まで作ってもらうつもりならともかく、そうでなければ勉強して基礎力を底上げしなければ話になりません。
Re:ファイル分割について
Posted: 2010年9月28日(火) 01:54
by DVDM
>>polpolさん
DrawGraph は指定した(X, Y)座標に何かの画像を表示するための関数です。
なので、sikaku 関数内の DrawGraph に与えている引数(SiX, SiY)で
polpolさんは描画している事になります。
WinMain 関数内で、sikaku(SikakuMuki, SikakuX, SikakuY, SikakuGraph);
と書けば、SikakuX, SikakuY の値を使って描画する事になりますが、
SikakuX, SikakuY の値が変わっていないので
ひたすらその場所に描画しているため動かないのだと思われます。
解決方法として、現在グローバル変数である、SikakuX, SikakuY を
直接 sikaku 関数内で変更するか、ポインタを使用するかの方法になってくると思います。
私もC言語の基礎が出来ていない様に見受けられました。
個人的にお勧めのサイトを紹介しておきますので、基礎を積み上げた方が宜しいと思います。
URL:
http://9cguide.appspot.com/
URL:
http://www.geocities.jp/ky_webid/c/index.html
Re:ファイル分割について
Posted: 2010年9月28日(火) 04:10
by polpol
>>DVDMさん
DVDMさんの言うとうり、sikaku 関数内のint SiX,int SiYを
グローバル変数である、SikakuX, SikakuYに変更すれば動きました。
ありがとうございます。助かりました。
詳しいサイトのリンクまで貼っていただき感謝します
C言語はゲームを作る為に最近覚え始たので
確かに知識があやふやなまま手をつけてしまいました
一度本を買って勉強しなおします^^;