デフォルト以外の背景の使用


サンプル「デフォルト以外の背景の使用」
sample04.zip
[右クリックで「対象をファイル保存」で東方弾幕風のscriptフォルダに保存してから解凍してください]

sample
sample.txtより抜粋
#BackGround[User(.\back.png,0,-0.7)]

弾幕の連続再生時のデフォルト背景の変更については東方弾幕風旧ヘルプに記述されていますが、少々補足
「@BackGround」はスペルカード時の背景となっているがステージ形式のスクリプトにおいてそこに記述しても背景には反映されない
よってスペルカード時にはその弾幕スクリプト毎に@BackGround{}に背景再生のスクリプトを記述しなくてはいけない

sample_s.txtより抜粋
//変数宣言

     let count;//弾を出す間隔を制御するための変数;
     let count_b;//背景用フレームカウント

//背景用変数の宣言
     let sizeBG_x=384;//背景画像のサイズ
     let sizeBG_y=541;
     let back_x=0;//内部変数
     let back_y=0;
     let roll_x=0;//軸方向のロールスピード
     let roll_y=2;
//宣言終了

     @Initialize
     {
          count=-100;//弾を出す間隔を制御するための変数;
          count_b=0;//背景用フレームカウント
          LoadGraphic("script\img\ExRumia.png");
          LoadGraphic(GetCurrentScriptDirectory~"back_s.png");

中略

@BackGround
{
     SetGraphicRect(0,0,384,541);
     SetTexture(GetCurrentScriptDirectory~"back_s.png");

     let back_y=GetCenterY()-sizeBG_y+(count_b*roll_y) % sizeBG_y;
     while( back_y <= GetCenterY()+sizeBG_y )
     {

          let back_x=GetCenterX()-sizeBG_x+(count_b*roll_x) % sizeBG_x;
          while( back_x <= GetCenterX() )
          {

               DrawGraphic(back_x,back_y);
               back_x+=sizeBG_x;

          }
          back_y+=sizeBG_y;

     }

}

ここで注意しなければいけない点は背景用フレームカウントの宣言もしておくところ
あと背景ファイルの場所の記述の仕方(カレントディレクトリの取得をしたほうが環境依存の恐れが無い)
このスクリプトは指定した背景画像をタイル状に貼り付け(画像が画面より大きい場合は画面にあわせて)指定のスピードでロールさせる

背景画像を作成する際に注意すべき点の一つ目は画像の継ぎ目
出来るならペイント系ソフトで2つ並べて継ぎ目が目立たないことを確認してから使用したほうがいい
二つ目は画像の明度
明るい色のある背景もしくはコントラストのはっきりとした背景では弾が目立たなくなる恐れがあるため使用しないほうがいい



戻る