survivors: fixing ui for touch events

This commit is contained in:
Sheldan
2025-09-07 20:11:34 +02:00
parent 70c19f2851
commit 272a86d7fc
2 changed files with 24 additions and 16 deletions

View File

@@ -128,19 +128,29 @@ docReady(function () {
hud = new HUD(world, keys); hud = new HUD(world, keys);
canvas.onmousedown = (event) => { canvas.onmousedown = (event) => {
hud.mouseDown(event) event.preventDefault()
let pos = new Vector(event.x, event.y)
hud.mouseDown(pos)
} }
canvas.onmouseup = (event) => { canvas.onmouseup = (event) => {
hud.mouseUp(event) event.preventDefault()
let pos = new Vector(event.x, event.y)
hud.mouseUp(pos)
} }
canvas.touchstart = (event) => { canvas.addEventListener("touchstart", (event) => {
hud.mouseDown(event) event.preventDefault()
} let touch = event.touches[0]
let pos = new Vector(touch.clientX, touch.clientY)
hud.mouseDown(pos)
});
canvas.touchend = (event) => { canvas.addEventListener("touchend", (event) => {
hud.mouseUp(event) event.preventDefault()
} let touch = event.touches[0]
let pos = new Vector(event.clientX, event.clientY)
hud.mouseUp(pos)
});
ItemManagement.initializeItems() ItemManagement.initializeItems()

View File

@@ -19,13 +19,11 @@ export class HUD implements DrawContainer {
this.controls.draw(ctx) this.controls.draw(ctx)
} }
mouseDown(event: MouseEvent) { mouseDown(pos: Vector) {
let pos = new Vector(event.x, event.y)
this.controls.mouseDown(pos) this.controls.mouseDown(pos)
} }
mouseUp(event: MouseEvent) { mouseUp(pos: Vector) {
let pos = new Vector(event.x, event.y)
this.controls.mouseUp(pos) this.controls.mouseUp(pos)
} }
@@ -39,12 +37,12 @@ export class Controls implements DrawContainer, MouseInterActingContainer {
constructor(world: World, keys: any) { constructor(world: World, keys: any) {
this.world = world; this.world = world;
let gapSize = 10;
this.buttons = [ this.buttons = [
new KeyboardButton(new Vector(this.world.size.x - 150, this.world.size.y - 150), new Vector(50, 50), 'W', keys), new KeyboardButton(new Vector(this.world.size.x - 150, this.world.size.y - 150 - gapSize), new Vector(50, 50), 'W', keys),
new KeyboardButton(new Vector(this.world.size.x - 150, this.world.size.y - 100), new Vector(50, 50), 'S', keys), new KeyboardButton(new Vector(this.world.size.x - 150, this.world.size.y - 100), new Vector(50, 50), 'S', keys),
new KeyboardButton(new Vector(this.world.size.x - 100, this.world.size.y - 100), new Vector(50, 50), 'D', keys), new KeyboardButton(new Vector(this.world.size.x - 100 + gapSize, this.world.size.y - 100), new Vector(50, 50), 'D', keys),
new KeyboardButton(new Vector(this.world.size.x - 200, this.world.size.y - 100), new Vector(50, 50), 'A', keys) new KeyboardButton(new Vector(this.world.size.x - 200 - gapSize, this.world.size.y - 100), new Vector(50, 50), 'A', keys)
] ]
} }