Skip to content
This repository has been archived by the owner on Nov 13, 2023. It is now read-only.

Commit

Permalink
BugFixing (#75)
Browse files Browse the repository at this point in the history
* Fixed multible slice registration bug

* Fixed shift Keys bug
  • Loading branch information
Quadral1403 committed Jun 14, 2023
1 parent 8f1a564 commit 9f19c49
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 96 deletions.
10 changes: 10 additions & 0 deletions src/ts/engine/event/events/keyboardevent/keyboardevent.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import EngineEvent from "../../engineevent.js";
import KeyBoardEventData from "./keyboardeventdata.js";

class KeyBoardEvent extends EngineEvent<KeyBoardEventData> {
constructor(key: string) {
super(new KeyBoardEventData(key));
}
}

export default KeyBoardEvent;
13 changes: 13 additions & 0 deletions src/ts/engine/event/events/keyboardevent/keyboardeventdata.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
class KeyBoardEventData {
private _key: string;

get key(): string {
return this._key;
}

constructor(key: string) {
this._key = key;
}
}

export default KeyBoardEventData;
47 changes: 22 additions & 25 deletions src/ts/engine/input/inputhandler.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import EngineEvent from "../event/engineevent.js";
import EngineEventHandler from "../event/engineventhandler.js";
import KeyBoardEvent from "../event/events/keyboardevent/keyboardevent.js";
import KeyBoardEventData from "../event/events/keyboardevent/keyboardeventdata.js";
import MouseClickEvent from "../event/events/mouseclickevent/mouseclickevent.js";
import MouseClickEventData from "../event/events/mouseclickevent/mouseclickeventdata.js";
import Vector2D from "../math/vector2d.js";
Expand All @@ -21,13 +23,13 @@ class InputHandler {
>;

private _engineKeyDownEvent: EngineEventHandler<
KeyboardEvent,
EngineEvent<KeyboardEvent>
KeyBoardEventData,
KeyBoardEvent
>;

private _engineKeyUpEvent: EngineEventHandler<
KeyboardEvent,
EngineEvent<KeyboardEvent>
KeyBoardEventData,
KeyBoardEvent
>;

get mouseAbsolute(): Vector2D {
Expand Down Expand Up @@ -71,17 +73,11 @@ class InputHandler {
return this._engineMouseClickEvent;
}

get keyDownEvent(): EngineEventHandler<
KeyboardEvent,
EngineEvent<KeyboardEvent>
> {
get keyDownEvent(): EngineEventHandler<KeyBoardEventData, KeyBoardEvent> {
return this._engineKeyDownEvent;
}

get keyUpEvent(): EngineEventHandler<
KeyboardEvent,
EngineEvent<KeyboardEvent>
> {
get keyUpEvent(): EngineEventHandler<KeyBoardEventData, KeyBoardEvent> {
return this._engineKeyUpEvent;
}

Expand All @@ -100,12 +96,12 @@ class InputHandler {
MouseClickEvent
>();
this._engineKeyDownEvent = new EngineEventHandler<
KeyboardEvent,
EngineEvent<KeyboardEvent>
KeyBoardEventData,
KeyBoardEvent
>();
this._engineKeyUpEvent = new EngineEventHandler<
KeyboardEvent,
EngineEvent<KeyboardEvent>
KeyBoardEventData,
KeyBoardEvent
>();

window.addEventListener("mousemove", this.onMouseMove.bind(this));
Expand All @@ -132,24 +128,25 @@ class InputHandler {
}

private onKeyDown(keyboardEvent: KeyboardEvent): void {
if (!this._whiteListedKeys.includes(keyboardEvent.key)) {
if (!this.isKeyDown(keyboardEvent.key)) {
this._keystates.set(keyboardEvent.key, true);
let key = keyboardEvent.key.toLowerCase();
if (!this._whiteListedKeys.includes(key)) {
if (!this.isKeyDown(key)) {
this._keystates.set(key, true);
}

keyboardEvent.preventDefault();
this._engineKeyDownEvent.dispatch(new EngineEvent(keyboardEvent));
this._engineKeyDownEvent.dispatch(new KeyBoardEvent(key));
}
}

private onKeyUp(keyboardEvent: KeyboardEvent): void {
if (!this._whiteListedKeys.includes(keyboardEvent.key)) {
if (this.isKeyDown(keyboardEvent.key)) {
this._keystates.set(keyboardEvent.key, false);
let key = keyboardEvent.key.toLowerCase();
if (!this._whiteListedKeys.includes(key)) {
if (this.isKeyDown(key)) {
this._keystates.set(key, false);
}

keyboardEvent.preventDefault();
this._engineKeyUpEvent.dispatch(new EngineEvent(keyboardEvent));
this._engineKeyUpEvent.dispatch(new KeyBoardEvent(key));
}
}

Expand Down
7 changes: 4 additions & 3 deletions src/ts/game/entities/buttonstanding.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import Entity from "../../engine/entitiy/entity.js";
import EntityManager from "../../engine/entitiy/entitymanager.js";
import EngineEvent from "../../engine/event/engineevent.js";
import EngineEventHandler from "../../engine/event/engineventhandler.js";
import KeyBoardEvent from "../../engine/event/events/keyboardevent/keyboardevent.js";
import InputHandler from "../../engine/input/inputhandler.js";
import PlayerEntity from "./playerentity.js";

Expand Down Expand Up @@ -89,12 +90,12 @@ class ButtonStanding extends Entity {
>();
this._entityManager = Services.resolve<EntityManager>("EntityManager");
this._inputHandler = Services.resolve<InputHandler>("InputHandler");
this._inputHandler.keyDownEvent.subscribe(
(engineEvent: EngineEvent<KeyboardEvent>) => this.onKeyDown(engineEvent)
this._inputHandler.keyDownEvent.subscribe((engineEvent: KeyBoardEvent) =>
this.onKeyDown(engineEvent)
);
}

private onKeyDown(engineEvent: EngineEvent<KeyboardEvent>): void {
private onKeyDown(engineEvent: KeyBoardEvent): void {
if (engineEvent.eventData.key === "f" && !this._isPressed) {
let playerEntity = this._entityManager.entities.find(
(entity) => entity instanceof PlayerEntity
Expand Down
76 changes: 8 additions & 68 deletions src/ts/game/gamesetup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -406,46 +406,10 @@ class GameSetup extends EngineSetup {
assetManager.registerAnimatedTexture(
"playerRunRightBackwords",
[
assetManager.registerSliceTexture(
"playerRunRight4",
playerRunRightSpriteSheet.createSlice(
"playerRunRight4",
167,
10,
48,
78
)
),
assetManager.registerSliceTexture(
"playerRunRight3",
playerRunRightSpriteSheet.createSlice(
"playerRunRight3",
118,
10,
48,
78
)
),
assetManager.registerSliceTexture(
"playerRunRight2",
playerRunRightSpriteSheet.createSlice(
"playerRunRight2",
64,
10,
48,
78
)
),
assetManager.registerSliceTexture(
"playerRunRight1",
playerRunRightSpriteSheet.createSlice(
"playerRunRight1",
14,
10,
48,
78
)
),
assetManager.getTexture("playerRunRight4"),
assetManager.getTexture("playerRunRight3"),
assetManager.getTexture("playerRunRight2"),
assetManager.getTexture("playerRunRight1"),
],
100
);
Expand Down Expand Up @@ -508,34 +472,10 @@ class GameSetup extends EngineSetup {
assetManager.registerAnimatedTexture(
"playerRunLeftBackwords",
[
assetManager.registerSliceTexture(
"playerRunLeft4",
playerRunLeftSpriteSheet.createSlice("playerRunLeft4", 7, 10, 48, 78)
),
assetManager.registerSliceTexture(
"playerRunLeft3",
playerRunLeftSpriteSheet.createSlice("playerRunLeft3", 57, 10, 48, 78)
),
assetManager.registerSliceTexture(
"playerRunLeft2",
playerRunLeftSpriteSheet.createSlice(
"playerRunLeft2",
111,
10,
48,
78
)
),
assetManager.registerSliceTexture(
"playerRunLeft1",
playerRunLeftSpriteSheet.createSlice(
"playerRunLeft1",
160,
10,
48,
78
)
),
assetManager.getTexture("playerRunLeft4"),
assetManager.getTexture("playerRunLeft3"),
assetManager.getTexture("playerRunLeft2"),
assetManager.getTexture("playerRunLeft1"),
],
100
);
Expand Down

0 comments on commit 9f19c49

Please sign in to comment.