目次
- 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の「強引にホールド」と組み合わせ
コメント
こんばんは。
この間はありがとうございました!
アドバイスを頂けて凄く助かりました。
また一つご相談があるのですが、
ホールド終点のノーツのハンクラを消す場合はどこを弄ればよいのでしょうか?
ここのブログも拝見させていただいたのですが分からずじまいで・・・
何度も申し訳ないのですが、ご教授頂けると幸いです><