CoRサンプル集: テトリスのような落ちものパズルゲームのサンプル
テトリスのような落ちものパズルゲームのサンプル。
音楽・画像などの素材は一切使用していないので、コピペだけで移植出来ます。
操作方法
横移動:←→
ソフトドロップ:↓
ハードドロップ:↑
左回転:Z
右回転:X
ホールド:C
音楽・画像などの素材は一切使用していないので、コピペだけで移植出来ます。
操作方法
横移動:←→
ソフトドロップ:↓
ハードドロップ:↑
左回転:Z
右回転:X
ホールド:C
プレー:3
(人数:2)
クリア:2
評価: 10 (1回)
タグが設定されていません
#==============================================================================
# キー入力に応じてピースを操作する関数
#==============================================================================
# 入力されたキーに応じて、現在操作中のピースを移動または回転させる
#
# @param current_piece [Piece, nil] 操作対象のピースのインスタンス(存在しない場合はnil)
# @param input_manager [InputManager] 入力管理クラスのインスタンス
# @param current_time [Array<Integer>] 現在時刻の配列 [年, 月, 日, 時, 分, 秒, ミリ秒]
# @param grid [Array<Array>] 参照するグリッド
# @return [Boolean] ハードドロップ等でピースを即時確定すべきならtrue
def handle_input(current_piece, input_manager, current_time, grid)
if current_piece.nil?
return false
end
if input_manager.key_pressed?(keyboard, CONFIG[:controls][:left], current_time)
current_piece.move(-1, 0, grid)
end
if input_manager.key_pressed?(keyboard, CONFIG[:controls][:right], current_time)
current_piece.move(1, 0, grid)
end
if input_manager.key_pressed?(keyboard, CONFIG[:controls][:soft_drop], current_time)
current_piece.move(0, 1, grid)
end
if input_manager.key_pressed?(keyboard, CONFIG[:controls][:right_rotate], current_time)
current_piece.right_rotate(grid)
elsif input_manager.key_pressed?(keyboard, CONFIG[:controls][:left_rotate], current_time)
current_piece.left_rotate(grid)
end
if input_manager.key_pressed?(keyboard, CONFIG[:controls][:hard_drop], current_time)
current_piece.hard_drop(grid)
return true
end
return false
end
コード一覧
- datetime_array.rb
- defines.rb
- extension.rb
- grid_util.rb
- hold.rb
- input_handler.rb
- input_manager.rb
- piece.rb
- score.rb
- start.rb
プレー内容を公開する