第4回:Shoot the Bullet!
弾を撃つ
今回は弾を撃ってみましょう。
弾を撃つには、「発射位置」,「弾速情報」,「発射角度」,「弾の画像」などが必要です。
弾を撃つには[CreateShot01]を使います。
これは[@Initialize]内に書くと1発しか発射されないので、[@MainLoop]内に書きます。
それでは実際に書いてみましょう。
#東方弾幕風
#Title[敵の出現]
#Text[敵の出現]
#ScriptVersion[2]
script_enemy_main
{
@Initialize{
SetX(GetCenterX);
SetY(GetClipMinY+120);
SetLife(2000);
LoadGraphic("script\img\ExRumia.png");
SetTexture("script\img\ExRumia.png");
SetGraphicRect(0, 0, 63, 63);
}
@MainLoop{
SetCollisionA(GetX, GetY, 24);
SetCollisionB(GetX, GetY, 24);
CreateShot01(GetX, GetY, 2, 90, BLUE01, 10);
yield;
}
@DrawLoop{
DrawGraphic(GetX, GetY);
}
}
#Title[敵の出現]
#Text[敵の出現]
#ScriptVersion[2]
script_enemy_main
{
@Initialize{
SetX(GetCenterX);
SetY(GetClipMinY+120);
SetLife(2000);
LoadGraphic("script\img\ExRumia.png");
SetTexture("script\img\ExRumia.png");
SetGraphicRect(0, 0, 63, 63);
}
@MainLoop{
SetCollisionA(GetX, GetY, 24);
SetCollisionB(GetX, GetY, 24);
CreateShot01(GetX, GetY, 2, 90, BLUE01, 10);
yield;
}
@DrawLoop{
DrawGraphic(GetX, GetY);
}
}
CreateShot01
GetX, GetY: 発射位置の決定
2: 弾速(1フレームあたりに進むピクセル数)
90: 発射角度
BLUE01: 弾の種類
10: 実体化するまでの時間(フレーム)
この場合、
[敵の位置に弾速2,角度90度,BLUE01の弾を10フレーム遅延させて発射]
ということになります。
角度について
角度は、右を0度として時計回りで増えていきます。(通常は反時計回り)
角度に360の整数倍した数を足しても引いてもかまいません。
-90 度と 270 度は同じもので、±180 度で表現することも可能です。
角度について
弾の画像は、東方弾幕風ヘルプの
「弾の画像について」を読んでください。
決して説明が面倒とかそんなんじゃないです。
とりあえず、「CreateShot01を使えば弾を発射できる」ということを分かってもらえればそれでいいです。
次回はこのプログラムを改良していってみましょう。