C言語 入門 STGの作り方

十一日目 ボスを表示

初心者向けSTG作成入門

HOME/STGの作り方 目次/十一日目 ボスを表示/

広告

↓2016年02月29日発売↓

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

新品価格
¥2,462から
(2016/5/10 22:16時点)

もっと!C、C++言語本

目次へ戻る

ボスを表示

今回はボスを作ります。

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

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

構造体になります。

#define DISP_BOSS_MAX 2

struct BOSS{
	int serial_no;
	int appear_point;
	double first_x, first_y;
	double x, y;
	double draw_x, draw_y;
	int init_flag;
	int move_flag;
	int move_type;
	int shot_type;
	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] = {
	100,1100,0,260,0,0,30,10,0,0,
	101,2800,0,260,0,0,30,10,0,0
};

ボスのデータになります。

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

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

画像(s-11-1)

ボス登場!!!

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

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

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

1発放つだけではさみしいので「gamecount」が「100」カウント毎に発射し続けるように少し工夫しております。

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

for(int i = 0;i < DISP_BOSS_MAX;i++){
 if(boss[i].move_flag == 1 && boss[i].init_flag == 1){
  /*プレイヤーとボスの当たり判定*/
  /*プレイヤーショットとボスの当たり判定*/
 }
}

「my_collision_detection()」の後半部分がボスの当たり判定になります。

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

中間ソース10

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

次回

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

□ページの先頭へ□

□HOME□

広告

↓2014年06月20日発売↓

14歳からはじめるC言語わくわくゲームプログラミング教室 Visual Studio 2013編

新品価格
¥2,500から
(2016/5/10 22:17時点)

↓2014年10月25日発売↓

超本格! サンプルで覚えるC言語 3Dゲームプログラミング教室

新品価格
¥3,110から
(2016/5/10 22:18時点)

↓2013年07月25日発売↓

小学生からはじめるわくわくプログラミング

新品価格
¥2,052から
(2016/5/10 22:21時点)

↓2016年05月13日発売↓

小学生からはじめるわくわくプログラミング2

新品価格
¥2,052から
(2016/5/10 22:22時点)

もっと!C、C++言語本

□ページの先頭へ□

□HOME□