第11回

prev slash top slash next

第11回:冥符「常世桜」 1

何すんの?

今回からは本家弾幕の再現をして、スクリプト作成能力を高めていきましょう。
最初は[冥符「常世桜」(Normal)]です。

まずは弾幕の基本情報から見て行きましょう。

基本情報

出典:東方神霊廟Stage1
使用者:西行寺幽々子
制限時間:50秒
攻撃方法:4way×2重の加速蝶弾を乱射。
壁に当たった蝶弾は紫米粒弾に変化。
時間発狂で蝶弾の発射間隔が短くなる(50f→30f)。

大体こんなもんです。
実際に作り始める前に、下のスクリプトを天狗のネタ帖のテンプレートに登録しておくといいでしょう。
ユーザー定義関数が登録されていますが、
wフレーム待つ処理であるloop(w){yield}を関数にしただけです。
offsetXとoffsetYは、第8回で解説してあります。

#東方弾幕風
#Title[]
#Text[]
#ScriptVersion[2]

script_enemy_main{
 let imgBoss= "script\img\exrumia.png";
 @Initialize{
  SetLife(2000);
  
  LoadGraphic(imgBoss);
  SetTexture(imgBoss);
  SetGraphicRect(0, 0, 63, 63);
  Tmain;
 }
 @MainLoop{
  SetCollisionA(GetX, GetY, 24);
  SetCollisionB(GetX, GetY, 24);
  yield;
 }
 @DrawLoop{
  DrawGraphic(GetX, GetY);
 }
 @Finalize{
  DeleteGraphic(imgBoss);
 }
 task Tmain
 {
  SetMovePosition02(GetCenterX, GetClipMinY+120, 60);
  wait(60);
  
  loop
  {
   
   yield;
  }
 }
 function wait(w){loop(w){yield}}
 function offsetX(radius,angle)
 {
  return radius*cos(angle);
 }
 function offsetY(radius,angle)
 {
  return radius*sin(angle);
 }
}

Spell Card Attack!!

まずはカットインです。
組み込みの関数があるのでそれを使いましょう。
@Initialize内にこう書きましょう。

CutIn(YOUMU, "冥符「常世桜」", "", 0, 0, 0, 0);

これは、カットインを表示する関数です。
引数は、[カットインの種類(KOUMA, YOUMU), スペカ名, カットイン画像パス, 表示領域の指定×4]です。
今回カットイン画像は使わないので指定しません。
次はタイマーとスコアを設定しましょう。同じように@Initialize内に書きます。

SetTimer(50);
SetScore(2000000);

SetTimerは制限時間を秒単位で指定します。
SetScoreは少し特殊で、
撃破時に入力したスコアに画面左下に表示されているrateをかけた点が追加されます。
今回は適当に200万としておきましょう。

このスクリプトを実行すると、SEが鳴ってスペカ名が表示されると思います。
これで一気にスペカ戦っぽくなったかと思います。

次回はランダム蝶弾を発射する処理を実装しましょう。


top
prev slash next
inserted by FC2 system