忍者ブログ
「Gamemakerでゲームを作って見よう」 ということで、作業メモっぽい使い方をする予定。 愚痴なんかが多くなるかも・・・
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

好きな揚げ物はから揚げ。
こんばんわorこんにちは。
二度揚げすると中はジューシー、外はカリカリなから揚げが出来上がります。

と、から揚げに関しましては『から揚げ(調理編)』にて解説します。


前回は速度や角度を変えて撃つというオーソドックスな敵弾について解説いたしましたが、
今回は特殊な弾について解説いたします。

1.プレイヤーキャラの方に向けて発射される弾
プレイヤーキャラがいる場所を検知し、その方向に向けて弾を撃ちます。
プレイヤーキャラをobj_playerとし、ボスキャラ側のステップイベントで以下のコードを実行します。

angle = point_direction(x,y,obj_player.x,obj_player.y);

angle変数にボスキャラとプレイヤーキャラの角度を代入します。
そして、前回の角度の部分を以下のようにしてやります
  1. bull = instance_create(x,y,obj_bullet);
  2. bull.speed = 5;
  3. bull.direction = angle;
これでプレイヤーキャラの方向に向けて弾が発射されます。
3WAY等にも応用できます。

2.一旦とまってからプレイヤーキャラの方向に進む弾
一定距離進んでからストップ→自機目掛けて前進
というやつです。
発射は前回のコードと同様です。
発射される弾に以下のようなコードを追加していきます。
・クリエイトイベント
  1. alarm[0] = 25;


・alarm[0]イベント
  1. speed=0;
  2. alarm[1]=20;
・alarm[1]イベント
  1. direction = point_direction(x,y,obj_player.x,obj_player.y);
  2. speed=4;
まず、生成時にアラーム0に数値を代入します。
この値分だけステップが経過すると弾は止まります。止めるための処理がalarm[0]イベントです。
alarm[0]イベントではさらにアラーム1に値を入れています。
これが弾を止めておきたい時間を表します。
そしてalarm[1]イベントにて再びスピードが与えられています。
発射の角度を順次が変えていくことでいい感じの弾幕になる・・・かもしれません。

3.太いレーザー
前方に向けて太いレーザーを発射させます。
今までのとは違い、レーザー自体を動かさずにそれっぽく見せます。

まず、レーザー用のスプライトを用意します。
sprite_boss_laser.png



上のはワタクシメが用意した画像です。
画像そのものに関してはもっとそれっぽいものを各々好みでご用意ください。
その際注意していただきたいのは横のサイズについてです。
発射するボスキャラから画面端以上のサイズにするようにしてください。
なぜなのかは後ほど説明いたします。

上の画像を下にオブジェクト、obj_laserをつくります。
そして、ボスキャラ側で
instance_create(x ,y,obj_laser);
とオブジェクトを生成します。
そして、obj_laserにて
・クリエイトイベント
  1. image_xscale = 1/100;
  2. image_yscale = 1/100;
  3. laser_flg = 1;
  4. alarm[0] = 80;
・alarm[0]イベント
  1. laser_flg = 0;

・ステップイベント

  1. if(image_xscale < 1 && image_yscale < 1 && laser_flg == 1)
  2. {
  3.     image_xscale += 0.05;
  4.     image_yscale += 0.05;
  5. }
  6. if(laser_flg == 0)
  7. {
  8.     image_xscale -= 0.05;
  9.     image_yscale -= 0.05;
  10. }
  11. if(image_xscale <= 0 && image_yscale <= 0 && laser_flg == 0)
  12. {
  13.     instance_destroy();
  14. }
大まかな流れを解説します。
まず、レーザーを通常の1/100のサイズで生成します。
そして、アラームが0より大きい限り、サイズを5%ずつ大きくしていきます。
サイズが100%(元のサイズ)になると今度は5%ずつ小さくしていき、サイズが0になるとレーザーを消します。
image_xscale、image_yscaleはそれぞれ横、縦の画像の比率をあらわす変数です。
それぞれ0~1の値を持ち、1で元のサイズです。
これを0.05ずつ増やすことで徐々に元の大きさに戻しているわけです。
先述のレーザーの画像の横サイズに注意してほしかったのはこのためです。
敵から画面はしまで小さいと、レーザーが途中で止まっているように見えてしまいます。

ちなみに、当たり判定に関しましては、画像の比率と同じように伸び縮みしますので、別に設定したりする必要はございません。
アラーム0の数字は伸び縮みに要する時間です。
アラーム0の値時間で元のサイズに戻り、
0になるとlaser_flg変数を0に
laser_flgが0になると縮み始めるようになっています。

もうひとつアラームを使うことで、レーザーが元のサイズに戻り、しばらくそのままのサイズでいさせるといったことも可能となります。

さて、今回はここまでです。
次回こそはボスキャラにこれらの弾、レーザーを自動で撃たせるという部分について説明していきたいと思います。

拍手

PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
[28]  [27]  [26]  [25]  [24]  [23]  [22]  [21]  [20]  [19
アクセスカウンター
プロフィール
HN:
性別:
男性
趣味:
読書・ゲーム
自己紹介:
・好きな作家
夢枕獏/綾辻行人/椎名誠/北杜夫/スティーブンキング
・ハマったゲーム
R-TYPE/WILD ARMSシリーズ/イースシリーズ/九龍妖魔学園紀/SIREN/ぐわんげ/プロギアの嵐/エスプレイド/エスプガルーダ/式神の城
カレンダー
04 2025/05 06
S M T W T F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
ブログ内検索
最新コメント
[04/30 dean]
[04/29 管理人]
[04/29 dean]
[04/08 管理人]
[04/07 dean]
忍者アナライズ
バーコード
フリーエリア
Copyright (C) Gamemakerでも使ってみる

Template by あでる / Material by 素材くん「無料WEB素材屋」 / 忍者ブログ [PR]