lainTSX/src/core/mediaSceneEventHandler.ts

40 lines
1.2 KiB
TypeScript
Raw Normal View History

2020-11-25 15:14:23 +00:00
const handleMediaSceneEvent = (gameContext: any) => {
2020-11-01 15:40:46 +00:00
const keyPress = gameContext.keyPress;
const activeMediaComponent = gameContext.activeMediaComponent;
2020-11-25 15:14:23 +00:00
let newWordPosStateIdx = gameContext.wordPosStateIdx;
let newRightSideComponentIdx = gameContext.rightSideComponentIdx;
const rightSideComponents = ["fstWord", "sndWord", "thirdWord"];
if (rightSideComponents.includes(activeMediaComponent)) {
switch (keyPress) {
case "DOWN":
2020-11-25 15:14:23 +00:00
newWordPosStateIdx++;
if (newWordPosStateIdx > 6) {
newWordPosStateIdx = 1;
}
newRightSideComponentIdx++;
if (newRightSideComponentIdx > 2) {
newRightSideComponentIdx = 0;
}
break;
case "UP":
2020-11-25 15:14:23 +00:00
newWordPosStateIdx--;
if (newWordPosStateIdx < 1) {
newWordPosStateIdx = 6;
}
newRightSideComponentIdx--;
if (newRightSideComponentIdx < 0) {
newRightSideComponentIdx = 2;
}
break;
}
}
return {
event: `${activeMediaComponent}_${keyPress}`,
newWordPosStateIdx: newWordPosStateIdx,
newRightSideComponentIdx: newRightSideComponentIdx,
};
2020-11-01 15:40:46 +00:00
};
export default handleMediaSceneEvent;