320x100
오늘의 이슈.
지금은 블럭 속도가 처음 지정한 속도로 게임이 끝날때까지 유지되는데, 난이도 조절을 위해 시간이 지날수록 블럭 속도가 빨라지게 해보자.
// timer.js
class Timer {
setDifficulty() {
var that = this;
that.difficultyTimerId = setInterval(function() {
that.speed *= 0.9; // 속도를 10% 감소시킨다.
that.refreshGame(that.speed); // 감소된 속도로 세팅
}, 10000); // 10초마다 스피드 갱신
}
startGame() {
this.refreshGame(this.speed); // 시작 스피드로 게임 시작
this.setDifficulty(); // 난이도 세팅 호출
}
// 기존에 startGame 내부에 있던 함수를 재사용을 위해 별도의 함수로 뺀다.
refreshGame(speed) {
// 생략
}
stopGame() {
// 추가
clearInterval(this.difficultyTimerId);
this.difficultyTimerId = null;
// ~~
}
}
Timer 클래스에 setDifficulty 함수를 추가한다.
10초마다 스피드를 10% 감소시키게 setInterval을 하나 추가했다.
오늘따라 눈이 너무 피로해서 배경색을 검정으로 바꿨다.
속도(ms)를 콘솔에 찍어봤을 때 설정한대로 블럭이 내려오는 시간 간격이 10%씩 감소한 것을 확인할 수 있었다.
그런데 이렇게 하면 게임이 너무 쉽다.
게임이 난이도가 중요한데 이건 기획쪽으로 고민이 많이 필요할거 같다.
인터넷에서 테트리스 난이도 조절을 어떻게 하는지 찾아봤는데 오늘의 컨디션으로는 더이상 무리인 것 같아서 프린트기를 샀다. 자료조사해서 프린트해서 살펴봐야겠다.
새로운 이슈를 열고 이번 턴을 종료하자.
깃허브
320x100
'Project > 테트리스' 카테고리의 다른 글
[테트리스] 17. 캔버스 테두리 추가 (0) | 2020.08.08 |
---|---|
[테트리스] 16. 초기 블럭 생성 위치 개선 (0) | 2020.08.01 |
[테트리스] 14. 블럭이 지면에 닿았는지 판단하는 알고리즘 개선 (0) | 2020.05.04 |
[테트리스] 13. 다음에 나타날 블럭 1개에서 3개로 변경 (0) | 2020.04.29 |
[테트리스] 12. 블록이 바닥에 닿았을 때 모습 출력. (0) | 2020.04.27 |
댓글