>> シューティングゲーム作成入門トップに戻る
今回は背景を描画してみましょう。
背景描画用の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関数を呼び出しているだけです。
気をつけるところといえば描画順です。
キャラの描画の後に背景の描画を行ってしまうと、キャラが隠れてしまうので、
先に背景の描画をしてから、キャラの描画を行っています。
これらのコードを実行すると、以下の動画のようになります。
一見問題ないように見えますが、キャラが左端と右端に行ったときに、
画面から体がはみ出されて描画されてしまっていますね。
これだと何か違和感があります。
これについては、次回の講座で説明します。
>> 【描画領域の指定】に進む
>> シューティングゲーム作成入門トップに戻る













