ボールを発射し, ギミックを利用してボールをゴールに入れるゲーム. 左右矢印キーとZキーのみで操作し, すべての操作可能な箇所は連動するようになっている.
block_golf
ディレクトリで, デバッグ時や開発時はcargo run --features bevy/dynamic
, リポジトリクローン後試遊する際はcargo run
を実行する.
最適化のためにはcargo build --release
を実行し, target/release/
ディレクトリにassets
をコピーしてからtarget/release/block_golf
を実行する.
- メニューではzキーで決定, xキーでキャンセル(キャンセル時の選択肢は保存される).
- 「Set Rule」でルール設定できる.
- BallScore:それぞれのゴールに設定されている得点をどれだけ取れるか競う.
- LittleOperation:矢印キーの操作量が点数になり, 点数が低いほうが高評価となる.
- TimeAttack:ボールをいずれかのゴールに入れるまでの時間を競う.
- Startを選ぶとステージ選択になり, ステージを決定するとゲームが始まる.
- ボールをランチャーに番え, 発射する.
- ボールは推進やブロックによる反射, 風力などで移動する.
- 矢印キーによる操作でボールをゴールまで導くことが目的となる.
- ゲーム中, リザルトまでの間はRキーでリトライ, Bキーでメニューに戻ることができる.
- ブロックを回転や平行移動させる.
- ボール発射機を回転させる.
- ボールを番える, または発射する.
- (未実装)特定のスイッチを動作させる.
- 送風機:ブロックの1辺に設置されており, 風力でボールの大きさに依る力を加える.
- スイッチ:ボールが乗ると押され, 他のブロック等に影響を与える. 時間経過でもとに戻るものもある.
- 重力:特定のステージには重力が働く. 鉛直下向きだけではない.
- 磁石:磁力で鉄球だけに力を加える.
物理演算は自分で実装している. ボールには種類があり, 反発係数や大きさや密度が異なる. ブロックにも材質を設定できる(現状はあまり機能していない).