Skip to content

Commit

Permalink
Refactor GamePointer to use canvas for event listeners and update coo…
Browse files Browse the repository at this point in the history
…rdinate handling (#15)
  • Loading branch information
MiguelRipoll23 authored Dec 7, 2024
1 parent 1f325a0 commit 73b351b
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 15 deletions.
2 changes: 1 addition & 1 deletion src/models/game-controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ export class GameController {
) {
this.gameState = new GameState();
this.gameFrame = new GameFrame();
this.gamePointer = new GamePointer();
this.gamePointer = new GamePointer(this.canvas);
this.gameKeyboard = new GameKeyboard();

this.transitionService = new ScreenTransitionService(this.gameFrame);
Expand Down
30 changes: 17 additions & 13 deletions src/models/game-pointer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ export class GamePointer {

private preventDefault: boolean = true;

constructor(private readonly canvas: HTMLCanvasElement) {
this.addEventListeners();
}

public getX(): number {
return this.x;
}
Expand Down Expand Up @@ -87,7 +91,7 @@ export class GamePointer {
}

public addEventListeners(): void {
window.addEventListener(
this.canvas.addEventListener(
"touchstart",
(event) => {
if (this.preventDefault) {
Expand All @@ -97,7 +101,7 @@ export class GamePointer {
{ passive: false }
);

window.addEventListener(
this.canvas.addEventListener(
"touchmove",
(event) => {
if (this.preventDefault) {
Expand All @@ -107,45 +111,45 @@ export class GamePointer {
{ passive: false }
);

window.addEventListener(
this.canvas.addEventListener(
"pointermove",
(event) => {
if (this.preventDefault) {
event.preventDefault();
}

this.setX(event.clientX);
this.setY(event.clientY);
this.setX(event.offsetX);
this.setY(event.offsetY);
},
{ passive: false }
);

window.addEventListener(
this.canvas.addEventListener(
"pointerdown",
(event) => {
if (this.preventDefault) {
event.preventDefault();
}

this.setType(event.pointerType as PointerType);
this.setX(event.clientX);
this.setY(event.clientY);
this.setInitialX(event.clientX);
this.setInitialY(event.clientY);
this.setX(event.offsetX);
this.setY(event.offsetY);
this.setInitialX(event.offsetX);
this.setInitialY(event.offsetY);
this.setPressing(true);
},
{ passive: false }
);

window.addEventListener(
this.canvas.addEventListener(
"pointerup",
(event) => {
if (this.preventDefault) {
event.preventDefault();
}

this.setX(event.clientX);
this.setY(event.clientY);
this.setX(event.offsetX);
this.setY(event.offsetY);
this.setPressing(false);
this.setPressed(true);
},
Expand Down
1 change: 0 additions & 1 deletion src/services/game-loop-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ export class GameLoopService {
}

private addEventListeners(): void {
this.gamePointer.addEventListeners();
this.gameKeyboard.addEventListeners();
}

Expand Down

0 comments on commit 73b351b

Please sign in to comment.