From 66b9bc713cb5b385fc14cc628fca964236c2363e Mon Sep 17 00:00:00 2001 From: Nikita Iryupin Date: Thu, 22 Apr 2021 10:22:28 +0200 Subject: [PATCH] Fix movement of tank --- src/game.js | 18 +++++++++++++++++- src/playerTank.js | 4 ++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/game.js b/src/game.js index 875c7d8..9bbc845 100644 --- a/src/game.js +++ b/src/game.js @@ -8,7 +8,23 @@ export class Game { } start() { - addEventListener("keydown", (ev) => this.gameKeyAdapter.handleEvent(ev)); + let prevEv; + let holding = (ev) => { + if (!prevEv || prevEv.key != ev.key) return; + this.gameKeyAdapter.handleEvent(ev) + requestAnimationFrame(() => holding(ev)); + } + addEventListener("keydown", (ev) => { + if (prevEv) { + if (prevEv.key != ev.key) prevEv = undefined; + else return; + } + prevEv = ev; + requestAnimationFrame(() => holding(ev)); + }); + addEventListener("keyup", (ev) => { + if (prevEv && prevEv.key == ev.key) prevEv = undefined; + }); requestAnimationFrame(() => this.gameField.drawField()); } } \ No newline at end of file diff --git a/src/playerTank.js b/src/playerTank.js index bc02fc1..71f2a82 100644 --- a/src/playerTank.js +++ b/src/playerTank.js @@ -1,4 +1,4 @@ -import {DirectionEnum} from "./directionEnum"; +import { DirectionEnum } from "./directionEnum"; export class PlayerTank { @@ -29,7 +29,7 @@ export class PlayerTank { } this.direction = direction; - console.log(this.x + " " + this.y); + // console.log(this.x + " " + this.y); } draw(tileset, ctx, tilesize) {