Skip to content

Commit c868d2b

Browse files
authored
Add files via upload
1 parent 1402a6a commit c868d2b

File tree

2 files changed

+45
-13
lines changed

2 files changed

+45
-13
lines changed

marble_webapp/app.js

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@ const holes = [
1515
{x: 400, y: 400, r: 15}
1616
];
1717
const 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

2024
const keys = {};
2125
document.addEventListener('keydown', e => keys[e.key.toLowerCase()] = true);
@@ -25,8 +29,9 @@ document.addEventListener('keyup', e => keys[e.key.toLowerCase()] = false);
2529
if (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+
4065
function 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

6994
function 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;

marble_webapp/index.html

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
<!DOCTYPE html>
2-
<html lang="en">
2+
<html lang="de">
33
<head>
44
<meta charset="UTF-8">
5-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6-
<title>Marble Maze Game v3</title>
5+
<title>Marble Game</title>
76
<style>
87
html, body {
98
margin: 0;
@@ -34,17 +33,25 @@
3433
position: absolute;
3534
top: 10px;
3635
left: 10px;
37-
z-index: 2;
36+
z-index: 10;
37+
background: #fff8;
38+
padding: 8px;
39+
border-radius: 8px;
3840
}
3941
button {
40-
padding: 8px 16px;
41-
font-size: 16px;
42+
padding: 4px 8px;
43+
font-size: 10px;
44+
background-color: #007bff;
4245
}
4346
</style>
4447
</head>
4548
<body>
4649
<div id="controls">
47-
<button onclick="restartGame()">Restart</button>
50+
<button id="resetBtn">Reset Neigung</button>
51+
<label>Sensitivität:
52+
<input type="range" id="sensitivitySlider" min="0.1" max="2" step="0.01" value="0.5">
53+
<span id="sensitivityValue">0.50</span>
54+
</label>
4855
</div>
4956
<canvas id="gameCanvas"></canvas>
5057
<script src="app.js">

0 commit comments

Comments
 (0)