@@ -15,7 +15,11 @@ const holes = [
1515 { x : 400 , y : 400 , r : 15 }
1616] ;
1717const friction = 0.98 ;
18- const sensitivity = 0.4 ;
18+ let sensitivity = 0.5 ;
19+
20+ // Für Reset-Button: Offset für Neutralstellung
21+ let angleXOffset = 0 ;
22+ let angleYOffset = 0 ;
1923
2024const keys = { } ;
2125document . addEventListener ( 'keydown' , e => keys [ e . key . toLowerCase ( ) ] = true ) ;
@@ -25,8 +29,9 @@ document.addEventListener('keyup', e => keys[e.key.toLowerCase()] = false);
2529if ( window . DeviceMotionEvent ) {
2630 window . addEventListener ( 'devicemotion' , e => {
2731 if ( e . accelerationIncludingGravity ) {
28- angleX = e . accelerationIncludingGravity . x * - 0.01 ; // Scale down for sensitivity
29- angleY = e . accelerationIncludingGravity . y * - 0.01 ; // Scale down for sensitivity
32+ // Offset berücksichtigen
33+ angleX = e . accelerationIncludingGravity . x * - 0.1 - angleXOffset ;
34+ angleY = e . accelerationIncludingGravity . y * 0.1 - angleYOffset ;
3035 }
3136 } ) ;
3237}
@@ -37,6 +42,26 @@ function restartGame() {
3742 velocity = { x : 0 , y : 0 } ;
3843}
3944
45+ // --- NEU: Reset-Button und Sensitivitäts-Slider ---
46+ const resetBtn = document . getElementById ( "resetBtn" ) ;
47+ const sensitivitySlider = document . getElementById ( "sensitivitySlider" ) ;
48+ const sensitivityValue = document . getElementById ( "sensitivityValue" ) ;
49+
50+ resetBtn . addEventListener ( "click" , ( ) => {
51+ // Aktuelle Werte als Offset speichern
52+ angleXOffset = angleX + angleXOffset ;
53+ angleYOffset = angleY + angleYOffset ;
54+ } ) ;
55+
56+ sensitivitySlider . addEventListener ( "input" , ( ) => {
57+ sensitivity = Number ( sensitivitySlider . value ) ;
58+ sensitivityValue . textContent = sensitivity . toFixed ( 2 ) ;
59+ } ) ;
60+ // Initialwert anzeigen
61+ sensitivityValue . textContent = sensitivitySlider . value ;
62+
63+ // ---------------------------------------------------
64+
4065function draw ( ) {
4166 ctx . clearRect ( 0 , 0 , canvas . width , canvas . height ) ;
4267
@@ -63,7 +88,7 @@ function draw() {
6388 // Debug
6489 ctx . fillStyle = "black" ;
6590 ctx . font = "14px sans-serif" ;
66- ctx . fillText ( `angleX: ${ angleX . toFixed ( 2 ) } angleY: ${ angleY . toFixed ( 2 ) } ` , 10 , 20 ) ;
91+ ctx . fillText ( `angleX: ${ ( angleX + angleXOffset ) . toFixed ( 2 ) } angleY: ${ ( angleY + angleYOffset ) . toFixed ( 2 ) } sensitivity: ${ sensitivity . toFixed ( 2 ) } ` , 10 , 40 ) ;
6792}
6893
6994function update ( ) {
@@ -77,8 +102,8 @@ function update() {
77102 if ( keys [ 'd' ] ) keyboardAngleX += keyboard_sensitivity ;
78103
79104 // Kombiniere Tastatur und DeviceMotion
80- const totalAngleX = angleX + keyboardAngleX ;
81- const totalAngleY = angleY + keyboardAngleY ;
105+ const totalAngleX = ( angleX + angleXOffset ) + keyboardAngleX ;
106+ const totalAngleY = ( angleY + angleYOffset ) + keyboardAngleY ;
82107
83108 velocity . x += totalAngleX * sensitivity ;
84109 velocity . y += totalAngleY * sensitivity ;
0 commit comments