게임이 재시작될 때 스테이지 정보가 초기화되지 않아 처음부터 점수가 빠르게 오름
...
if (gameover) {
showGameOver();
score.currentStage = 0;
}
...
index.js의 게임루프에서 gameover 됐을 때, 현재 스테이지를 초기화시켜줘서 해결함
아이템이 올바른 스테이지에서 생성되지 않음
// Score.js
...
getCurrentStageId() {
return assets.stage.data[this.currentStage].id;
}
...
// index.js
...
itemController.update(gameSpeed, deltaTime, score.getCurrentStageId());
...
// ItemController.js
...
getItemsPerStage(currentStageId) {
const itemUnlockIndex = assets.item_unlock.data.findIndex((e) => e.stage_id === currentStageId);
return assets.item_unlock.data[itemUnlockIndex].item_id;
}
createItem(currentStageId) {
const itemsPerStage = this.getItemsPerStage(currentStageId);
const index = this.getRandomNumber(0, itemsPerStage.length - 1);
const createdItem = assets.item.data.find((e) => e.id === itemsPerStage[index]);
const itemInfo = this.itemImages[itemsPerStage[index] - 1];
const x = this.canvas.width * 1.5;
const y = this.getRandomNumber(10, this.canvas.height - itemInfo.height);
const item = new Item(
this.ctx,
itemInfo.id,
x,
y,
itemInfo.width,
itemInfo.height,
itemInfo.image,
createdItem.score,
);
this.items.push(item);
}
...
Score.js에 현재 스테이지의 Id를 받아오는 함수를 만들어서 index.js의 게임루프 부분에서 itemController를 호출할 때 현재 스테이지의 Id를 값으로 넣어줌. ItemController.js에서는 현재 스테이지 Id를 통해 현재 스테이지에서 획득 가능한 아이템 정보에 따라 아이템을 생성함.
'TIL' 카테고리의 다른 글
[모의 면접 준비] 전송 계층 프로토콜 (0) | 2024.10.28 |
---|---|
Buffer (0) | 2024.10.22 |
모의면접 준비 (0) | 2024.09.30 |
[Node.js 게임서버 개발] 웹소켓 (1) | 2024.09.26 |
[프로그래머스] MySQL - 월별 잡은 물고기 수 구하기 (2) | 2024.09.23 |