본문 바로가기
Project/테트리스

[테트리스] 15. 시간 지날수록 블럭 속도 감소

by 햄과함께 2020. 5. 7.
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%씩 감소한 것을 확인할 수 있었다.

 

그런데 이렇게 하면 게임이 너무 쉽다.

게임이 난이도가 중요한데 이건 기획쪽으로 고민이 많이 필요할거 같다.

인터넷에서 테트리스 난이도 조절을 어떻게 하는지 찾아봤는데 오늘의 컨디션으로는 더이상 무리인 것 같아서 프린트기를 샀다. 자료조사해서 프린트해서 살펴봐야겠다.

새로운 이슈를 열고 이번 턴을 종료하자.


깃허브

block speed change

320x100

댓글