華穂です。
今日は、ちょっと困ったことになったためお力をお借りしたく
書き込ませていただきました。(常連になっちゃいましたね)
実はですね、初めて書き込みをした時からシューティングゲームを作って
はいたのですが、それは各時の・・なんというか、簡単な動作を一つ一つ
作っていただけでして・・いや、実はクラスとか構造体とかあまり考えずに
作っていたのですが、5ステージある以上、やはりクラスで作ろうと昨日から
急いでクラスを作っていました。
そこで、なんとか画面ごとに飛べるようになったのですが・・自機のクラス(
というよりも画像)を、フレームつまり、プレイ画面へと表示させたい
のですが・・どうすればいいのでしょうか?
いままでのやり方とは違う方向・久しぶりのクラスともあってうまくいきません。
ソースは・・。
/*画面クラス*/
class GameFrame
{
//全体の変数を設置
int ~~~
・
・
・
public:
GameFrame()
void Load();
void Start();
void Map();
void Play();
以下、ステージ・ゲームクリア・オーバーをvoidで宣言
void GameMain();
};
GameFrame::GameFrame()
{//この中では、マップに表示するための自機の残機や
フォント・現在の画面モードの設定}
void GameFrame::Load()
{この中では、必要な画像と音源のロード}
void GameFrame::Start()
{スタート画面の設定}
void GameFrame::Map()
{マップ画面の設定}
void GameFrame::Play()
{ステージごとの画面の設定と、ステータス画面の文字設定}
☆以下省略
ゲーム全体の流れ(?)を設定
void GameFrame::GameMain()
{ゲーム全体の流れ(?)を設定
・スタート画面表示
・マップ画面表示
・プレイ画面表示
{
Play();
}
以下省略
}
}
/*自機クラス*/
class Ziki
{
//よく分からないが、上で設定した変数が使えない?
ため、上から自機と弾の変数だけ持ってきて改めて設定
int Ziki[2],~~~
int Tama, ~~~
public:
Ziki();
void Ziki_Move();
void Ziki_Tama();
void Ziki_Load();
};
Ziki::Ziki()
{自機の初期化・初期設定(X、Yの座標など)}
void Ziki::Ziki_Load()
{画像ロード(自機はLDGにてロード}
void Ziki::Ziki_Move()
{自機の移動・制御}
void Ziki::Ziki_Tama()
{自機の弾の移動・制御}
と、書いてみました。
大雑把ですみません。
そして、問題は、私の考えでは、自機のクラスの中から
『Ziki_Move』『Ziki_Tama』だけを、画面クラスの
void GameFrame::GameMain()の中の、Play();の下に、
Play();
Ziki_Move();
Ziki_Tama();
とすれば表示・動かすことができるのではないかと考えました。
しかし、実際にはエラーが出てしまい・・それならばと、
画面クラスの、変数設定の中に・・
Ziki Zk;
と作りそれを、Zk.Ziki_Move();とすればいいんじゃないかと
思いました・・が、またもエラー。
『Ziki Zk;に、型名が必要』と言われ「??」となってしまいました。
どうすればいいのでしょうか?
このままでは、雑魚敵のクラスでも同じことになってしまうため、是非とも
ご指摘・アドバイス・ご指南の方をよろしくお願いします。
画像表示について
Re:画像表示について
それぞれのソースファイルがどういう構成にあるのか分からないのですが
全て1ファイルに記述しているのであれば、Zikiクラスの定義はGameFrameクラスの定義より上部に無いといけません。
それぞれをヘッダファイルに定義しているなら、定義するクラスのヘッダをインクルードする必要があります。
全て1ファイルに記述しているのであれば、Zikiクラスの定義はGameFrameクラスの定義より上部に無いといけません。
それぞれをヘッダファイルに定義しているなら、定義するクラスのヘッダをインクルードする必要があります。
Re:画像表示について
うえっ!?
そ、そうなんですか?
今のところ、1つのファイルに2つのクラスをかきこんでます。(ヘッダは・・使用してませんね)
今から自機のクラスを上部へと移動させて試してみたいと思います。
ねこ様、ありがとうございました!
おそらく今度は画像コンパイルが通っても画像が表示されてない可能性も出てくるので・・その時は
またよろしくおねがいします。
そ、そうなんですか?
今のところ、1つのファイルに2つのクラスをかきこんでます。(ヘッダは・・使用してませんね)
今から自機のクラスを上部へと移動させて試してみたいと思います。
ねこ様、ありがとうございました!
おそらく今度は画像コンパイルが通っても画像が表示されてない可能性も出てくるので・・その時は
またよろしくおねがいします。