広告
↓発売日:2018年09月22日↓
新品価格 |
今回はプレイヤーショットを2種類だけ増やしたいと思います。
最初プレイヤーショットを作った時に少しめんどくさい事はだいたい終わっているのでさらっといきたいと思います。
事前準備としてショット切り替えの部分を加えます。
プレイヤーとアイテムとの当たり判定「my_collision_player_item()」に以下の部分を加えます。
if(p1.shot_type < 2){ p1.shot_type++; }
アイテムに当たった時に「p1.shot_type++;」とショットをパワーアップさせます。
あとはプレイヤー死亡時ショットを元に戻す処理は「my_change_state()」内にすでにあるのでこれだけで事前準備は大丈夫です。
それではいってみましょう!
まずは正面に2発飛ばすようなショットを作ってみます。
こんなショットです。
さっそくプログラムから見てみましょう。
「my_move_player_shot()」の「case 1」になります。
if(ps1[i].init_flag == 0){ ps1[i].max_bullet = 2; for(int j = 0;j < ps1[i].max_bullet;j++){ ps1[i].x[j] = p1.x; ps1[i].y[j] = p1.y; ps1[i].flag[j] = 1; } ps1[i].x[0] += 10; ps1[i].x[1] -= 10; ps1[i].gamecount_point = gamecount; ps1[i].init_flag = 1; } else{ /*移動部分*/ }
正面に2発飛ばすので「max_bullet」は2発ですね。
座標と一緒に例のフラグ「flag」も初期化しておきます。
例のフラグってなんだっけという方はこちらをご覧ください。
あとは正面に2方向なのでそれぞれ「10」ピクセルずつずらしたら初期化完了です。
for(int j = 0;j < ps1[i].max_bullet;j++){ ps1[i].y[j] += 8; }
前回の連射ショットの時と同じように「max_bullet」分座標を動かすだけです!
続いて「5way」ショットを作ってみます。
こんなのです。
プログラムを見てみましょう。
「my_move_player_shot()」の「case 2」になります。
if(ps1[i].init_flag == 0){ ps1[i].max_bullet = 5; for(int j = 0;j < ps1[i].max_bullet;j++){ ps1[i].x[j] = p1.x; ps1[i].y[j] = p1.y; ps1[i].flag[j] = 1; } ps1[i].angle[0] = 90 * (DX_PI / 180); ps1[i].angle[1] = 135 * (DX_PI / 180); ps1[i].angle[2] = 225 * (DX_PI / 180); ps1[i].angle[3] = 315 * (DX_PI / 180); ps1[i].angle[4] = 45 * (DX_PI / 180); ps1[i].gamecount_point = gamecount; ps1[i].init_flag = 1; } else{ /*移動部分*/ }
今度は5発飛ばすので「max_bullet」は5発ですね。
合わせて座標と「flag」も初期化しておきます。
そして星型のような方向にそれぞれショットを飛ばしたいのでそれに合わせて角度も設定します。
あとは前回やった好きな角度に座標を移動する「sin,cos」を使ってショットを移動するだけです。
for(int j = 0;j < ps1[i].max_bullet;j++){ ps1[i].x[j] += cos(ps1[i].angle[j]) * 8; ps1[i].y[j] += sin(ps1[i].angle[j]) * 8; }
「max_bullet」分だけ「sin,cos」を使って移動すれば完了です!
ここまでの中間ソースになります。
次回はプレイヤーの移動によって背景を少しずらすのと、それと共に背景に固定されているような敵を作りたいと思います。
広告
↓発売日: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日↓
新品価格 |