実装状況・既知の制約
確認基準:2026-10-12、develop-dxlib、08f9fa53fa5e9043d46aeede8e7aab7bab519892。以下は静的なコード確認で、実機の再現試験結果ではありません。
実装を確認した機能
GameObjectとComponentの管理、矩形・円・矩形対タイルの衝突、マスクと接触イベント、タイルマップ、追従カメラ、シーンコマンド、ローディング、画像・分割画像、アニメーション、音声再生、ボタン、JSON/CSV、メモリマップファイルがあります。
未対応・未確認
| 項目 | 状態 |
|---|---|
| 円対タイル | Visitが空実装で未対応 |
| 多角形コライダー | POLY列挙値はあるが対応クラスを確認できず |
| SDL・ImGui・FMOD | 調査対象ブランチでは未導入 |
| 別ジャンルの完成サンプル | 未提供。共通機能を応用する位置付け |
| 学校への提供実績 | 未確認。教材化の目的として記載 |
| C++ビルド・全実習の実行 | 今回の文書整備では未実施 |
利用上の制約
- 対象はWindows、x64・v143。Win32は本ガイドの対象外です。
- setup.batのnlohmann/json取得版が固定されていません。
- 起動時のresourcesコピーはソースのフォルダー配置に依存します。
- 同型Componentは1登録枠で、更新順は追加順ではありません。
- GameObject/Component/アセットの借用ポインタを所有者より長く保持しないでください。
- MapはLoadingContextの存在が前提です。タスクはRun前に登録します。
- Loadingは同一インスタンスの再実行を前提としません。100%進捗は成功保証ではありません。
- コライダー全体のStepは二重ループです。大量オブジェクトでの性能保証はありません。
- 同一カテゴリのコライダー削除は他コライダーのマスク・イベントへ影響する実装です。複数個体への拡張時に確認が必要です。
- Filterは形状ごとにownerIDをOR結合する一方、HasMaskは完全一致検索です。複数タグを合成したマスクの動作は要確認です。
- 唯一のシーンをCmdPopすると空スタックの扱いに問題があります。終了はCmdQuitを使います。
静的確認で見つかった要確認箇所
| 箇所 | 観察内容 |
|---|---|
| MoveWithKey::Update | Yの移動計算にm_moveSpeed.xを使用 |
| ColliderVisitor::HandleContact | 「どちらかがtriggerなら押し戻さない」というコメントに対して条件がOR |
| Animator::EnableAnim | 実装は非表示化。命名と意味が逆に見える |
| Animator::Update | ONCEの停止制御がなく、PINGPONGではendFrameの添字に注意が必要 |
| AnimatorのGetAnim使用 | 値で返す一時オブジェクトから参照を受ける箇所があり、コンパイル・寿命の確認が必要 |
| LoadingSceneの待ち時間 | staticなelapsedが複数回の遷移で共有されるため再訪時の待ち時間は要確認 |
| Sound/AudioSource | BGMはLoadBGM経路、再生・削除はSoundMem系。BGM_ONCEもループ経路へ入る |
| JsonIO::Write | 拡張子補完が一時文字列への変更。明示的に.jsonを指定する |
| CSV | 空セルを省略。引用符対応や数値末尾検証を前提にしない |
これらは文書制作に伴う調査メモです。ゲームコードの修正はこの文書変更に含めていません。改善時は再現条件と期待結果を記録し、文書の基準コミットも更新してください。