Step 1: Implement game timer tracking
Some checks failed
Build / build (push) Has been cancelled

Added real-time game timer that starts when VR headset tracking is active.

**Modified: src/ship.ts**
- Added public getter for gameStats to allow Level1 to access it

**Modified: src/level1.ts**
- Call ship.gameStats.startTimer() in onInitialXRPoseSetObservable
- Timer starts when XR pose is set (when VR tracking begins)
- Added debug log to confirm timer start

The Game Time statistic now tracks actual play time from when the user enters VR, displayed in MM:SS format on the status screen.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Michael Mainguy 2025-11-08 03:53:07 -06:00
parent 854f43ecf3
commit ff9d9faa2a
2 changed files with 9 additions and 0 deletions

View File

@ -43,6 +43,11 @@ export class Level1 implements Level {
xr.baseExperience.camera.parent = this._ship.transformNode; xr.baseExperience.camera.parent = this._ship.transformNode;
const currPose = xr.baseExperience.camera.globalPosition.y; const currPose = xr.baseExperience.camera.globalPosition.y;
xr.baseExperience.camera.position = new Vector3(0, 0, 0); xr.baseExperience.camera.position = new Vector3(0, 0, 0);
// Start game timer when XR pose is set
this._ship.gameStats.startTimer();
debugLog('Game timer started');
const observer = xr.input.onControllerAddedObservable.add((controller) => { const observer = xr.input.onControllerAddedObservable.add((controller) => {
debugLog('🎮 onControllerAddedObservable FIRED for:', controller.inputSource.handedness); debugLog('🎮 onControllerAddedObservable FIRED for:', controller.inputSource.handedness);
this._ship.addController(controller); this._ship.addController(controller);

View File

@ -59,6 +59,10 @@ export class Ship {
return this._scoreboard; return this._scoreboard;
} }
public get gameStats(): GameStats {
return this._gameStats;
}
public set position(newPosition: Vector3) { public set position(newPosition: Vector3) {
const body = this._ship.physicsBody; const body = this._ship.physicsBody;