- commit
- 30c1c15b0254cea0b530bed3e9c04f950d2adc42
- parent
- be26c24296a82bbf4621b9179eb66995695f0c75
- Author
- Tobias Bengfort <tobias.bengfort@posteo.de>
- Date
- 2024-09-23 06:07
add touch controls
Diffstat
| M | static/main.js | 48 | ++++++++++++++++++++++++++++++++++++++++++++++++ |
1 files changed, 48 insertions, 0 deletions
diff --git a/static/main.js b/static/main.js
@@ -6,6 +6,7 @@ var gameId = params.get('game');
6 6
7 7 var socketProtocol = location.protocol.replace('http', 'ws');
8 8 var socket = new WebSocket(`${socketProtocol}//${location.host}/ws/${gameId}`);
-1 9 var pointer = null;
9 10
10 11 var send = function(data) {
11 12 socket.send(JSON.stringify(data));
@@ -233,3 +234,50 @@ document.onkeydown = function(event) {
233 234 }
234 235 event.preventDefault();
235 236 };
-1 237
-1 238 var click = function() {
-1 239 var x = pointer.x / innerWidth - 0.5;
-1 240 var y = pointer.y / innerHeight - 0.5;
-1 241 if (Math.abs(x) > Math.abs(y)) {
-1 242 send({action: 'move', dir: x > 0 ? 'right' : 'left'});
-1 243 } else {
-1 244 send({action: 'move', dir: y > 0 ? 'down' : 'up'});
-1 245 }
-1 246 };
-1 247
-1 248 document.addEventListener('pointerdown', event => {
-1 249 if (!pointer && (event.buttons & 1 || event.pointerType !== 'mouse')) {
-1 250 event.preventDefault();
-1 251 $pre.setPointerCapture(event.pointerId);
-1 252 pointer = {
-1 253 id: event.pointerId,
-1 254 x: event.clientX,
-1 255 y: event.clientY,
-1 256 timeout: setTimeout(() => {
-1 257 click();
-1 258 pointer.timeout = setInterval(() => {
-1 259 click();
-1 260 }, 40);
-1 261 }, 200),
-1 262 };
-1 263 click();
-1 264 }
-1 265 });
-1 266
-1 267 document.addEventListener('pointermove', event => {
-1 268 if (pointer && event.pointerId === pointer.id) {
-1 269 event.preventDefault();
-1 270 pointer.x = event.clientX;
-1 271 pointer.y = event.clientY;
-1 272 }
-1 273 });
-1 274
-1 275 var pointerup = function(event) {
-1 276 if (pointer && event.pointerId === pointer.id) {
-1 277 clearTimeout(pointer.timeout);
-1 278 pointer = null;
-1 279 }
-1 280 };
-1 281
-1 282 document.addEventListener('pointerup', pointerup);
-1 283 document.addEventListener('pointercancel', pointerup);