第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が鳴ってスペカ名が表示されると思います。
これで一気にスペカ戦っぽくなったかと思います。
次回はランダム蝶弾を発射する処理を実装しましょう。