ページ 1 / 1
ヘッダとどれ位キーが押されているかについて
Posted: 2014年11月13日(木) 18:11
by やす
この間状態遷移について質問させていただいたやすです。
ヘッダでの状態遷移のやり方は分かったのですが、それに新・ゲームプログラミングの館2.9章のようなプログラムをどうやって追加すればいいかが分かりません。状態遷移についてのソースコードは新・ゲームプログラミングの館のsp6とほとんど同じです。
よろしくお願いします
Re: ヘッダとどれ位キーが押されているかについて
Posted: 2014年11月13日(木) 19:38
by softya(ソフト屋)
それは、たぶん分かっていないと思います。
あとヘッダがある=ファイル分割である事と状態遷移は何ら関わりがありませんので、「ヘッダでの状態遷移のやり方」という説明は変です。
答えを言うのは簡単なのですが、それでは理解されないと思うのでsp6と2.9を混ぜる上で何処が分からないか説明してみてください。
Re: ヘッダとどれ位キーが押されているかについて
Posted: 2014年11月14日(金) 00:49
by やす
副管理人さんへ
int gpUpdateKey()の呼び出しをSceneMgr.javaに、int gpUpdateKey()の関数をSceneMgr.cppファイルに書いたのですが、WinMain関数のWhileの条件のところにgpUpdateKey()を書くと定義されていないと言われ、なぜそうなるのかが分かりません
Re: ヘッダとどれ位キーが押されているかについて
Posted: 2014年11月14日(金) 13:37
by softya(ソフト屋)
SceneMgr.javaは間違いとして、もう一度整理してもらえませんか?
int gpUpdateKey()の呼び出しをSceneMgr.javaとあるのに、WinMain関数のWhileの条件のところにgpUpdateKey()を書くととありますが本当に呼び出しているのはどちらでしょうか?
やす さんの「呼び出し」と「書く」という言葉の意味と言うか違いがわかりません。
Re: ヘッダとどれ位キーが押されているかについて
Posted: 2014年11月15日(土) 18:27
by やす
副管理人さんへ
すいません、SceneMgr.hでした
WinMain関数のWhileの条件でSceneMgr.hにある、関数gpUpdateKey()の呼び出しを呼び出すものだと思っていますが、違うのでしょうか?
Re: ヘッダとどれ位キーが押されているかについて
Posted: 2014年11月15日(土) 19:59
by softya(ソフト屋)
ヘッダに書く関数のプロトタイプ宣言は、こういう引数と戻り値のこんな名前の関数があるので呼び出しできますよ。と言う連絡事項に過ぎません。
実際に呼び出される関数はcppに実体の定義があり、引数の型や名前などヘッダと違わない定義になっている必要があります
こういうお約束を使いこなして初めてヘッダの使い方を理解したといえると思います。
大抵コピペでなんとなく出来たってのは分かっていないです。
で、根本的な問題としてgpUpdateKey()の実体定義はどこにあるのでしょうか?
あと、SceneMgrにgpUpdateKey()があるのは、オブジェクト指向設計や構造化設計的には変ですよ。
Re: ヘッダとどれ位キーが押されているかについて
Posted: 2014年11月15日(土) 21:44
by やす
副管理人さんへ
WinMain関数のWhileの条件内で呼び出すgpUpdateKey()は、実体定義に則ったものだと思っていたのですが、違っていたのでしょうか?
gpUpdateKey()の実体定義はSceneMgr.cppにあります。
すいません、まだ全然分かってなくて……おこがましいのですが、出来れば、どこがどう変なのかご教授していただきたいです……
Re: ヘッダとどれ位キーが押されているかについて
Posted: 2014年11月15日(土) 22:00
by softya(ソフト屋)
main.cppでSceneMgr.hがインクルードされていないとエラーが出ますね。main.cpp=WinMainではgpUpdateKey()の事など知らないわけですから。
あとは大文字小文字、綴り間違いがある場合でしょう。
【補足】
> すいません、まだ全然分かってなくて……おこがましいのですが、出来れば、どこがどう変なのかご教授していただきたいです……
設計の問題については、関数名とファイル名の意味に関連性が全くない事です。
とりあえず手近なところへ組み込んだと言う悪い設計の典型ですね。