더북(TheBook)

12.5.3 클래스 간 연동하기

이제 클래스 간에 상호 작용을 시작해 보겠습니다. start() 메서드에서는 이벤트 리스너 연결과 화면 전환 외에 어떤 것을 해야 할까요? 게임을 시작했으니 주인공을 만들어야 합니다.

constructor() 메서드에서 전달받은 주인공의 이름(name)을 start() 메서드를 거쳐 Hero 클래스에 전달합니다. 그러면 this.hero = new Hero(name);을 통해 주인공이 Game 클래스의 hero 속성에 등록됩니다.

class Game { // 게임 클래스
  constructor(name) { // 생성자
    (중략)
    this.start(name);
  }
  start(name) { // 게임 시작 메서드
    $gameMenu.addEventListener('submit', this.onGameMenuInput);
    $battleMenu.addEventListener('submit', this.onBattleMenuInput); 
    this.changeScreen('game');
    this.hero = new Hero(name);
  }
  (중략)
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.