スポンサーサイト

--. . --
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

色変化 - ParaFlaソース(ver fd3.0.2以降)

2008. . 28
方法が個別加速ソースのようには行かない部分があるので、その修正版。
ほとんど<譜面計算>部分なのでややこしいですが、
コピペを繰り返せば行けます。多分。

もっと簡単で良かったようです > ch3coohさん
< 譜面計算 >
//
// 色変化部分の読み込み (他の部分と同様の部分に置く)
_root.iro_dac = _root.color_data.split(",");


▽ function push_tune()

  // このASがあるあたりから(ここはすでにある部分)
  if(!isNaN(parseFloat(_root.boost_dac[0]))){
    for(k=0;k<_root.boost_dac.length;k+=2){
      get_boost(k,_root.boost_dac[k]);

      //
      // スピードの上限設定(個別加速)
      if(_root.boost_dac[k+1]*_root.speedTmp[_root.boost_dac[k]]
        >_root.top_spd*2){
        (省略)
      }
    }
  }

  // 追加するAS
  if(!isNaN(parseFloat(_root.iro_dac[0]))){
    for(k=0;k<_root.iro_dac.length;k+=3){
      get_color(k,_root.iro_dac[k]); // 色変化関数
    }
  }

  // この後に _root.arr_spd=[];が入るようにする

(・ ・ ・ 省略 ・ ・ ・)

▽ 追加する関数

//
// 逆算してどのタイミングで色変化するかを計算
function get_color(k,num){
  var startY =0;
  var cnt =0;
  var bstcnt =15;
  num -= -_root.correction;

  while(_root.dist_y-startY>0){
    startY += _root.speedTmp[num];
    //
    // Sp.Motionによる追加スピード(ストップを除く)
    if(_root.speedTmp[num]!=0){
      startY += _root.mot_array[bstcnt];
      bstcnt++;
    }
    num--;
    cnt++;
  }
  _root.iro_dac[k]-=cnt-_root.correction;
}


▽ function del_temporary()

すぐ下にある boost_dac のところを参考に、
boost部分をすべてコピペして boost → iro に直す。
そして j=_root.iro_dac.length-2;j>=0;j-=2 を
  j=_root.iro_dac.length-3;j>=0;j-=3
に変更する。


<譜面台>

どこかに cl = 0; と書いた後

if(frame_num==iro_dac[cl]){
  //
  // ここで矢印色をセットする
  // [ 0: フリーズアロー / 1: 通常矢印 / 2: 斜め矢印 / 3: 通常+斜め ]
  //
  if(iro_dac[cl+2]% 2 ==1){
    var set_arr1 = new Color(main.le_s);
    var set_arr2 = new Color(main.do_s);
    var set_arr3 = new Color(main.up_s);
    var set_arr4 = new Color(main.ri_s);
    set_arr1.setRGB(iro_dac[cl+1]);
    set_arr2.setRGB(iro_dac[cl+1]);
    set_arr3.setRGB(iro_dac[cl+1]);
    set_arr4.setRGB(iro_dac[cl+1]);

  }else if(iro_dac[cl+2] ==0){
    _root.frz_color[0]=iro_dac[cl+1];
    _root.frz_color[1]=iro_dac[cl+1];
  }
  if(iro_dac[cl+2] >=2){
    var set_arr1 = new Color(main.led_s);
    var set_arr2 = new Color(main.rid_s);
    set_arr1.setRGB(iro_dac[cl+1]);
    set_arr2.setRGB(iro_dac[cl+1]);
  }

  cl+=3;
}

と続ければOK (judgeYとかは不要です)。
同じフレームでいろんな矢印の色を変えたい場合は
do{
  (色変化処理)
  cl+=3;
} while (frame_num==iro_dac[cl]);
みたいにするといいかも。
スポンサーサイト

comment

post comment

  • comment
  • secret
  • 管理者にだけ表示を許可する

trackback

trackbackURL:http://alprime.blog91.fc2.com/tb.php/97-164299c3
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。