@@ -295,17 +295,24 @@ export default class MovementModelsLabScene extends Scene {
295295 ) ;
296296 this . drawFacingIndicator ( renderer , cameraState , projectionViewport ) ;
297297
298- renderer . drawRect ( 52 , 34 , 360 , 138 , 'rgba(15, 23, 42, 0.76)' ) ;
299- renderer . strokeRect ( 52 , 34 , 360 , 138 , '#4ade80' , 1 ) ;
300- renderer . drawText ( 'Movement Lab HUD' , 64 , 52 , { color : '#86efac' , font : '12px monospace' } ) ;
301- renderer . drawText ( `Movement Mode: ${ formatMode ( this . movementMode ) } ` , 64 , 74 , {
298+ const canvasSize = renderer . getCanvasSize ?. ( ) || { width : 960 , height : 540 } ;
299+ const hudWidth = 360 ;
300+ const hudHeight = 138 ;
301+ const hudX = Math . max ( 12 , canvasSize . width - hudWidth - 22 ) ;
302+ const hudY = Math . max ( 12 , canvasSize . height - hudHeight - 18 ) ;
303+ const hudTextX = hudX + 12 ;
304+
305+ renderer . drawRect ( hudX , hudY , hudWidth , hudHeight , 'rgba(15, 23, 42, 0.76)' ) ;
306+ renderer . strokeRect ( hudX , hudY , hudWidth , hudHeight , '#4ade80' , 1 ) ;
307+ renderer . drawText ( 'Movement Lab HUD' , hudTextX , hudY + 18 , { color : '#86efac' , font : '12px monospace' } ) ;
308+ renderer . drawText ( `Movement Mode: ${ formatMode ( this . movementMode ) } ` , hudTextX , hudY + 40 , {
302309 color : '#f8fafc' ,
303310 font : '14px monospace' ,
304311 } ) ;
305- renderer . drawText ( `Input: ${ this . lastInputSummary } ` , 64 , 94 , { color : '#e2e8f0' , font : '12px monospace' } ) ;
306- renderer . drawText ( `Speed: ${ this . lastSpeed . toFixed ( 2 ) } units/s` , 64 , 112 , { color : '#e2e8f0' , font : '12px monospace' } ) ;
307- renderer . drawText ( `Heading: ${ this . actor . heading . toFixed ( 2 ) } rad` , 64 , 130 , { color : '#e2e8f0' , font : '12px monospace' } ) ;
308- renderer . drawText ( `Camera follow mode: ${ this . viewState . cameraMode } ` , 64 , 148 , { color : '#e2e8f0' , font : '12px monospace' } ) ;
312+ renderer . drawText ( `Input: ${ this . lastInputSummary } ` , hudTextX , hudY + 60 , { color : '#e2e8f0' , font : '12px monospace' } ) ;
313+ renderer . drawText ( `Speed: ${ this . lastSpeed . toFixed ( 2 ) } units/s` , hudTextX , hudY + 78 , { color : '#e2e8f0' , font : '12px monospace' } ) ;
314+ renderer . drawText ( `Heading: ${ this . actor . heading . toFixed ( 2 ) } rad` , hudTextX , hudY + 96 , { color : '#e2e8f0' , font : '12px monospace' } ) ;
315+ renderer . drawText ( `Camera follow mode: ${ this . viewState . cameraMode } ` , hudTextX , hudY + 114 , { color : '#e2e8f0' , font : '12px monospace' } ) ;
309316
310317 drawPanel ( renderer , 620 , 34 , 300 , 188 , 'Movement Runtime' , [
311318 `Mode: ${ formatMode ( this . movementMode ) } ` ,
0 commit comments