laneya2

cave exploration game
git clone https://git.ce9e.org/laneya2.git

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);