Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Resolves #12
What is the feature
キーコンフィグレーション機能を実装し、ユーザーがキー操作を自由に設定・変更できるようにします。
Why we need the feature
現在はPC用およびゲームコントローラー用のキー操作に対応していますが、今後対応するデバイスが増える可能性があります。キーコンフィグを導入することで、新しいデバイスやユーザーごとの好みに柔軟に対応でき、拡張性とユーザビリティの向上が期待できます。
How to implement and why
キー設定ファイルのフォーマット選定: 読みやすく編集しやすいフォーマットとして、JSON、YAML、CSVのいずれかを採用します。例えば、階層構造を持ち、コメントも記述できるYAMLが適しています。
デフォルト設定ファイルの作成: 既存のキー操作を基に、デフォルトのキー設定ファイルを作成します。これにより、後方互換性を保ちます。
設定ファイルの読み込み機能の実装: 起動時にキー設定ファイルを読み込み、キー操作のマッピングを動的に構築する機能を追加します。
キー入力処理のリファクタリング:
block_controller.py
やgame_manager
内のキー入力処理を修正し、ハードコードされたキー値を設定ファイルからの値に置き換えます。設定ファイルの編集手順のドキュメント化: ユーザーがキー設定を変更・追加できるよう、設定ファイルの編集方法を
README.md
やdoc
ディレクトリ内に記載します。将来的なGUI設定画面の検討: 今後の拡張として、アプリ内でキーコンフィグを変更できるGUI画面の実装も視野に入れます。
About backward compatibility
後方互換性を維持するため、デフォルトのキー設定ファイルを提供し、従来通りのキー操作が可能な状態とします。これにより、既存のユーザーはアップデート後も違和感なく使用できます。キー設定機能は追加機能として提供されるため、強制的な変更をユーザーに求めません。
Test these changes locally