jubeat analyserの改造メモ Part4-2(HOLDマーカー終点の挙動)

目次

Part1
基本事項(全体的な外観とか)
Part2
数字(叩く順番)の表示に関するもの
Part3
analyserから直接、動画(AVI)出力する
Part4-1
HOLDマーカーの挙動
Part4-2
HOLDマーカー終点の挙動

holding(i) は、ホールド中のノート番号を返す(押してなければ0)
ただ、autoplay時には格納されないので
自力でholdingに代入してあげる必要あり(STEP3)

STEP1@新変数を作る

STEP1A

2次元配列変数 endofhold(i,j) を作成
これが1なら「そのノートはホールド完了した」となる

//今押されてるホールドが最後まで押されて終了してたらhanteitime()に0を、hantei()にパフェ(4)を代入しとく

↑のところに、
hantei(i,holding(i)) = 4 // これはもとからある記述
endofhold(i,holding(i)) = 1 // HOLD完了したもの

の1行を追記。ついでに、*playinitのとこで変数宣言する

dim endofhold,pw*ph,maxind // HOLD完了したか否か

STEP1B

endofholdを入れたところの2つ目のif条件を 右だけにする
↓こうなる

if (showt >= a(i,holding(i))){

//本来は、前フレームで押していたが今フレームでは押していないものを検知するもののはず
時刻が来たら強制的に処理を行わせる

STEP2@終点でエフェクトを描画

//判定がなされてる(i.e. 押下/リリースされ済みな)場合はマーカーでなく判定エフェクトを表示する、そうでない場合は普通にマーカーを表示する

の条件を

if (showvisualhantei != 1 && hantei(i,j)!=0 && timefromhantei >= 0){

から以下に変更

if ( (showvisualhantei != 1 or endofhold(i,j)==1) && hantei(i,j)!=0 && timefromhantei >= 0){

すなわち、そのノートのendofholdが1なら、
「判定を表示しない」設定であろうと強引に描画させる

STEP3@holding(i)を入力

//押下/リリース されていない場合
の場所で

if (hantei(i,j-1)!=0 && shisha(drawt) > a(i,j-1)+hanteitime(i,j-1)): nowholding = 1: else: nowholding = 0

nowholding = 1の横に : holding(i)=jを追記

てかifとっぱらって、これ1行ごとごっそり
nowholding = 1 : holding(i)=j

にしてしまってもいいかも(Part4-1の「強引にホールド」と組み合わせ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする