広告
↓発売日:2018年09月22日↓
![]() |
新品価格 |
今回はボスを作ります。
普通の敵の体力を上げて少し複雑なショットを持たせてボス風にできなくもないのですが、ステージクリア判定用のフラグの事や、いずれボス用に簡単な弾幕ショットを作りたいというのもありボス自体も分けた方が都合が良さそうなので分ける事にしました。
基本は敵を作る時とほとんどかわりありません。
構造体になります。
#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」個になっているところに注意です。
あとは初期化、データ読み込み、移動など敵とほぼ同じなので説明は省略させて頂きます。
ボス登場!!!
まだクリア判定などは加えていないので通常の敵と同じように動いているだけです。
ショットも通常の敵のショットを少し工夫してそのまま使用しております。
if(gamecount % 100 == 1){
my_set_enemy_shot(boss[i].x,boss[i].y,boss[i].shot_type,i);
}
あと当たり判定や残りの体力判定なども通常の敵とは別になりますので注意です。
ここまでの中間ソースになります。
次回はボスの爆発エフェクトを作ってみたいと思います。
広告
↓発売日:2016年02月29日↓
![]() |
12歳からはじめる ゼロからのC言語 ゲームプログラミング教室 新品価格 |
↓発売日:2018年06月22日↓
![]() |
新品価格 |
↓発売日:2018年03月09日↓
![]() |
新品価格 |
↓発売日:2017年06月14日↓
![]() |
新品価格 |
↓発売日:2018年05月21日↓
![]() |
新品価格 |
↓発売日:2017年12月07日↓
![]() |
新品価格 |
↓発売日:2017年02月08日↓
![]() |
新・明解C言語で学ぶアルゴリズムとデータ構造 (明解シリーズ) 新品価格 |
↓発売日:2017年09月26日↓
![]() |
新品価格 |