ファイル分割について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
polpol

ファイル分割について

#1

投稿記事 by polpol » 15年前

ファイル分割について勉強中なのですが
このマニュアルの四角君の移動ルーチンを
コードを分割して別ファイルに記述したいのですがうまくいきません
http://homepage2.nifty.com/natupaji/DxL ... re1_2.html

書いたファイルを置いておくので原因が分かる方よろしくお願いします
http://www1.axfc.net/uploader/H/so/116477.zip

DVDM

Re:ファイル分割について

#2

投稿記事 by DVDM » 15年前

>>polpolさん
> コードを分割して別ファイルに記述したいのですがうまくいきません
何がどううまくいかないのでしょうか。
リンク先のプロジェクトをダウンロードして実行してみましたが
画像も表示されますし、キー入力で画像も動きました。

polpol

Re:ファイル分割について

#3

投稿記事 by polpol » 15年前

>>DVDMさん

マニュアルどうりに書いてるので上に緑の敵が表示されるはず
なんですが表示されません

DVDM

Re:ファイル分割について

#4

投稿記事 by DVDM » 15年前

>>polpolさん
四角君の移動ルーチンが別ファイルに分かれているようですが、
肝心の sikaku 関数が呼ばれていないのが原因ではないでしょうか。


sikaku 関数の定義が、WinMain 関数内で行われているのが気になります。

void sikaku(int SikakuMuki,int SikakuX,int SikakuY,int SikakuGraph);

int WINAPI WinMain(~~)
{

}
としておいた方がいいと思います。

polpol

Re:ファイル分割について

#5

投稿記事 by polpol » 15年前

>>DVDMさん

void sikaku(int SikakuMuki,int SikakuX,int SikakuY,int SikakuGraph);

int WINAPI WinMain(~~)
{
void sikaku(int SikakuMuki,int SikakuX,int SikakuY,int SikakuGraph);

}
と書きましたがやはり表示されませんでした。。

DVDM

Re:ファイル分割について

#6

投稿記事 by DVDM » 15年前

>>polpolさん
関数の宣言や定義と、関数の呼び出しは別物なので、WinMain 関数内の
void sikaku(int SikakuMuki,int SikakuX,int SikakuY,int SikakuGraph); は、
関数を呼び出していることにはなりません。


WinMain 関数に、sikaku(第一引数, 第二引数, 第三引数, 第四引数);
と書けば、描画されると思います。
描画されなくてはやる気持ちも解りますが、関数は大事なところですので
もう一度関数についての勉強を強く推奨致します。

参考URL:http://www.geocities.jp/ky_webid/c/008.html

polpol

Re:ファイル分割について

#7

投稿記事 by polpol » 15年前

>WinMain 関数に、sikaku(第一引数, 第二引数, 第三引数, 第四引数);
と書けば、

sikaku(SikakuMuki,SikakuX,SikakuY,SikakuGraph);と書けば
画像は表示されるようになったのですが
その場で止まったまま動きません。
なぜでしょう・・・

たかぎ

Re:ファイル分割について

#8

投稿記事 by たかぎ » 15年前

> なぜでしょう・・・

勉強不足です。
一から十まで作ってもらうつもりならともかく、そうでなければ勉強して基礎力を底上げしなければ話になりません。

DVDM

Re:ファイル分割について

#9

投稿記事 by DVDM » 15年前

>>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

polpol

Re:ファイル分割について

#10

投稿記事 by polpol » 15年前

>>DVDMさん
DVDMさんの言うとうり、sikaku 関数内のint SiX,int SiYを
グローバル変数である、SikakuX, SikakuYに変更すれば動きました。
ありがとうございます。助かりました。
詳しいサイトのリンクまで貼っていただき感謝します
C言語はゲームを作る為に最近覚え始たので
確かに知識があやふやなまま手をつけてしまいました
一度本を買って勉強しなおします^^;

閉鎖

“C言語何でも質問掲示板” へ戻る