画像(logo)

HOME/[C言語DXライブラリ]STGの作り方 目次/十一日目 ボスを表示

広告

[C言語 DXライブラリ STGの作り方]
十一日目 ボスを表示

広告

↓2016年02月29日発売↓

12歳からはじめる ゼロからのC言語 ゲームプログラミング教室

目次へ戻る

ボスを表示

今回はボスを作ります。

普通の敵の体力を上げて少し複雑なショットを持たせてボス風にできなくもないのですが、ステージクリア判定用のフラグの事や、いずれボス用に簡単な弾幕ショットを作りたいというのもありボス自体も分けた方が都合が良さそうなので分ける事にしました。

基本は敵を作る時とほとんどかわりありません。

構造体になります。

#define DISP_BOSS_MAX 2

struct BOSS{
	int serial_num;
	int appear_point;
	double first_x, first_y;
	double x, y;
	double draw_x, draw_y;
	double angle;
	int init_flag;
	int move_flag;
	int damage_flag;
	int move_type;
	int shot_type;
	double var[5];
	int gamecount_point[5];
	int power;
	double range;
	int item_flag;
	int end_flag;
};

struct BOSS boss[DISP_BOSS_MAX];

最後の「end_flag」というのが先ほども言いましたステージクリア判定用のフラグになります。

このフラグが「1」のボスがそのステージのボスという事になります。

「gamecount_point」が5個用意されているのはこれを使って少しだけ複雑な動き方をさせる為です。

このへんはまた後半に説明したいと思います。

とりあえず中ボスとステージボスと2体分用意しました。

#define STAGE_BOSS_MAX 2
#define BOSS_DATA_MAX 10

int ary_boss_data[STAGE_BOSS_MAX * BOSS_DATA_MAX] = {
	0,1100,0,260,0,0,30,10,0,0,
	1,2800,0,260,0,0,30,10,0,0
};

最後のデータが「end_flag」の分になりますのでボス一体分のデータの数が「10」個になっているところに注意です。

あとは初期化、データ読み込み、移動など敵とほぼ同じなので説明は省略させて頂きます。

画像(cdxs_11_1)

ボス登場!!!

まだクリア判定などは加えていないので通常の敵と同じように動いているだけです。

ショットも通常の敵のショットを少し工夫してそのまま使用しております。

if(gamecount % 100 == 1){
	my_set_enemy_shot(boss[i].x,boss[i].y,boss[i].shot_type,i);
}

あと当たり判定や残りの体力判定なども通常の敵とは別になりますので注意です。

ここまでの中間ソースになります。

中間ソース10

次回はボスの爆発エフェクトを作ってみたいと思います。

次回

十二日目 ボスの爆発エフェクト

□ページの先頭へ□

□目次へ戻る□

□HOME□

広告

↓2017年06月16日発売↓

やさしいC 第5版 (「やさしい」シリーズ)

新品価格
¥2,700から
(2017/5/1 13:05時点)

↓2014年08月09日発売↓

新・明解C言語 入門編 (明解シリーズ)

新品価格
¥2,484から
(2017/5/1 13:08時点)

↓2016年02月20日発売↓

新・解きながら学ぶC言語

新品価格
¥2,160から
(2017/5/1 13:10時点)

↓2017年02月11日発売↓

C言語プログラミング基本例題88 88

新品価格
¥3,024から
(2017/5/1 13:12時点)

↓2016年12月15日発売↓

Cの絵本 第2版 C言語が好きになる新しい9つの扉

新品価格
¥1,490から
(2017/5/1 13:13時点)

↓2017年02月08日発売↓

新・明解C言語で学ぶアルゴリズムとデータ構造 (明解シリーズ)

新品価格
¥2,700から
(2017/5/1 13:15時点)