第19回:召喚「豪族乱舞」 3
弾画像の追加
前回で本体部分は完成しました。
今回は本家に近づけるために、弾画像を変更してみましょう。
下の画像を使いましょう。色味が違う?余裕で仕様です。
なお、透過pngなので、編集する場合はGIMPなどの透明度が扱えるソフトでないとおかしくなります。
この画像を弾として使うには、[弾画像定義ファイル]が必要です。さっそく作ってみましょう。
上の画像を前々回作ったフォルダに[shot_arrow.png]として保存し、[shotdata.txt]を同じところに作りましょう。
#UserShotData
shot_image = ".\shot_arrow.png"
ShotData
{
id = 1 //ID
rect = (0,0,32,32) //描画元矩形(左, 上, 右, 下)
render = ALPHA //描画方法(ALPHA or ADD)
delay_color = (128,128,128) //遅延時間時の光の色
}
こんな具合に書いていきます。
v0.12mだと当たり判定の大きさは切り出し範囲の大きさに合わせて自動で設定されるので、
切り出し設定によっては詐欺判定になることもあります。
ちなみに「矩形の長い方の辺/1.5-1.5(最低3)」を直径とする円が当たり判定になる模様。
ShotSettingDesignerを使うと楽でしょう。
弾のIDについてですが、最大で256までしか設定することができません。
加算合成(render = ADD)の弾を使いたい場合は、透明部分を黒くしておく必要があります。
今回は加算合成しないのでこのままでOKです。
次は、読み込ませる画像です。
弾幕風では、こういった画像のピクセル数を2の累乗(1, 2, 4, 8, 16…)にした方が良いです。今回は縦が32px(2の5乗)、横が512px(2の9乗)となっています。
ここで指定したサイズ以外の画像にすると、画像がぼけて表示されてしまいます。
弾画像を追加するときにアニメーションさせたい弾が出てきたときもあると思います。
その時はこうやって書けばアニメーションする弾を作ることができます。
#UserShotData
shot_image = ".\shot_arrow.png"
ShotData
{
id = 1 //ID
AnimationData
{
//16フレーム(0,0,12,12)
//→8フレーム(12,0,24,12)
//→24フレーム(12,12,24,24)
//→最初に戻る
animation_data = (16,0,0,12,12)
animation_data = (8,12,0,24,12)
animation_data = (24,12,12,24,24)
}
render = ALPHA //描画方法(ALPHA or ADD)
delay_color = (128,128,128) //遅延時間時の光の色
}
弾定義データが出来たら、実際に読み込ませてみましょう。
読み込ませるには[LoadUserShotData]をつかいます。
LoadUserShotDataにデータを定義したテキストファイルのパスを渡せば使う準備ができるようになります。
ここでは、弾画像適宜ファイルは一つしか読み込めないということに注意してください。
2つ以上読み込ませたときは後から読み込んだ方が優先されます。
自分で作った弾を使いたい場合は、BLUE01とか、RED32などの代わりに弾IDを直接指定します。
CreateShot01(GetX, GetY, 1, 90, 1, 10);
こんな感じです。
今回でv0.12m講座は終わりです。
これまでの講座で、マイクロスレッド、オブジェクト弾、使い魔、自作弾などが使えるようになりました。
こうしてみると少ないような気がしますが、これだけ覚えておけばいろいろな弾幕を張れるようになります。(一部無理なものもありますが)
どんな弾幕ができるかは製作者次第です。頑張ってください。