[[目次へもどる>PuyoPuyo]]
* 素早く落とそう [#xe7c701f]
#contents

ここでテストをする上でも落下するまで待つというのはとてもじれったいので,
さっさと高速落下を実装してしまおう.
高速落下の実装はとても簡単で,can_fall?メソッドで得られた落下可能距離を1フレームあたりの落下距離に制限するさい,入力があれば少し大きい値に制限してあげればよい.
#sh(ruby){{
class Field
  def update_control_block_move_y(iff)
    fall_y = @ctrl_block.can_falldown?(@table, @block_s)
    Debug.print fall_y
    if fall_y > 0 # fall
      speed = iff ? 6 : 0.8
      @ctrl_block.falldown(fall_y > speed ? speed : fall_y)
    elsif fall_y < 0 # dent
      @ctrl_block.fix_dent(-fall_y)
    else # postpone or land
      if !iff && @ctrl_block.postpone?
        @ctrl_block.update_postpone
      else
        control_block_land
        return false
      end
    end
    return true
  end
end
}}
引数のiffは高速落下のキーが押されていればtrue,そうでなければfalseが入っている.
あとはiffに応じて落下速度を変えればよいだけ.

** 実行 [#v8e630e7]
実に快適にテストプレイができる.
#media(PuyoPuyoChap15/PuyoPuyoChap15.flv);


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS