>> シューティングゲーム作成入門トップに戻る
今回は背景を描画してみましょう。
背景描画用のBACKクラスというのを作成します。
ヘッダファイルは以下の通りです。
座標とグラフィックハンドル用の変数しかありません。
画像は、

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

を使います。
コンストラクタで画像の読み込みと、初期座標の指定を行っています。
1 | BACK::BACK() |
2 | { |
3 | gh = LoadGraph( "back1.png" ); |
4 |
5 | x=y=MARGIN; |
6 | } |
次にDraw関数とAll関数です。
1 | void BACK::Draw() |
2 | { |
3 | DrawGraph(x,y,gh,FALSE); |
4 | } |
5 | void BACK::All() |
6 | { |
7 | Draw(); |
8 | } |
特に難しくないですね。
単純に描画して、それをAll関数で呼び出しているだけです。
このAll関数をCONTROLクラスで呼び出しています。
現在のcontrol.hとcontrol.cppのコードは以下のようになっています。
control.h
01 | #include "player.h" |
02 | #include "back.h" |
03 |
04 | class CONTROL{ |
05 |
06 | //プレイヤークラス |
07 | PLAYER *player; |
08 |
09 | //背景クラス |
10 | BACK *back; |
11 |
12 | public : |
13 | CONTROL(); |
14 | void All(); |
15 | }; |
control.cpp
01 | #include "pch.h" |
02 | #include "control.h" |
03 |
04 | CONTROL::CONTROL() |
05 | { |
06 | player = new PLAYER; |
07 |
08 | back = new BACK; |
09 |
10 | } |
11 |
12 | void CONTROL::All() |
13 | { |
14 | back->All(); |
15 | |
16 | player->All(); |
17 | } |
特に難しくはないですね。
コンストラクタでプレイヤークラスと背景クラスのインスタンスを作成し、
それぞれのAll関数を呼び出しているだけです。
気をつけるところといえば描画順です。
キャラの描画の後に背景の描画を行ってしまうと、キャラが隠れてしまうので、
先に背景の描画をしてから、キャラの描画を行っています。
これらのコードを実行すると、以下の動画のようになります。
一見問題ないように見えますが、キャラが左端と右端に行ったときに、
画面から体がはみ出されて描画されてしまっていますね。
これだと何か違和感があります。
これについては、次回の講座で説明します。
>> 【描画領域の指定】に進む
>> シューティングゲーム作成入門トップに戻る