>> シューティングゲーム作成入門トップに戻る
今回は背景を描画してみましょう。
背景描画用のBACKクラスというのを作成します。
ヘッダファイルは以下の通りです。
座標とグラフィックハンドル用の変数しかありません。
画像は、
を使います。
コンストラクタで画像の読み込みと、初期座標の指定を行っています。
次にDraw関数とAll関数です。
特に難しくないですね。
単純に描画して、それをAll関数で呼び出しているだけです。
このAll関数をCONTROLクラスで呼び出しています。
現在のcontrol.hとcontrol.cppのコードは以下のようになっています。
control.h
control.cpp
特に難しくはないですね。
コンストラクタでプレイヤークラスと背景クラスのインスタンスを作成し、
それぞれのAll関数を呼び出しているだけです。
気をつけるところといえば描画順です。
キャラの描画の後に背景の描画を行ってしまうと、キャラが隠れてしまうので、
先に背景の描画をしてから、キャラの描画を行っています。
これらのコードを実行すると、以下の動画のようになります。
一見問題ないように見えますが、キャラが左端と右端に行ったときに、
画面から体がはみ出されて描画されてしまっていますね。
これだと何か違和感があります。
これについては、次回の講座で説明します。
>> 【描画領域の指定】に進む
>> シューティングゲーム作成入門トップに戻る
背景を描画しよう
背景描画用のBACKクラスというのを作成します。
ヘッダファイルは以下の通りです。
class BACK{ private: //座標 double x,y; //グラフィックハンドル int gh; private: void Draw(); public: void All(); BACK(); };
座標とグラフィックハンドル用の変数しかありません。
画像は、
を使います。
コンストラクタで画像の読み込みと、初期座標の指定を行っています。
BACK::BACK() { gh = LoadGraph("back1.png"); x=y=MARGIN; }
次にDraw関数とAll関数です。
void BACK::Draw() { DrawGraph(x,y,gh,FALSE); } void BACK::All() { Draw(); }
特に難しくないですね。
単純に描画して、それをAll関数で呼び出しているだけです。
このAll関数をCONTROLクラスで呼び出しています。
現在のcontrol.hとcontrol.cppのコードは以下のようになっています。
control.h
#include "player.h" #include "back.h" class CONTROL{ //プレイヤークラス PLAYER *player; //背景クラス BACK *back; public: CONTROL(); void All(); };
control.cpp
#include "pch.h" #include "control.h" CONTROL::CONTROL() { player = new PLAYER; back = new BACK; } void CONTROL::All() { back->All(); player->All(); }
特に難しくはないですね。
コンストラクタでプレイヤークラスと背景クラスのインスタンスを作成し、
それぞれのAll関数を呼び出しているだけです。
気をつけるところといえば描画順です。
キャラの描画の後に背景の描画を行ってしまうと、キャラが隠れてしまうので、
先に背景の描画をしてから、キャラの描画を行っています。
これらのコードを実行すると、以下の動画のようになります。
一見問題ないように見えますが、キャラが左端と右端に行ったときに、
画面から体がはみ出されて描画されてしまっていますね。
これだと何か違和感があります。
これについては、次回の講座で説明します。
>> 【描画領域の指定】に進む
>> シューティングゲーム作成入門トップに戻る