더북(TheBook)
getXp(xp) { // 레벨 업 메서드
  this.xp += xp;
  if (this.xp >= this.lev * 15) { // 경험치를 다 채우면(주인공 레벨 × 15)
    this.xp -= this.lev * 15; 
    this.lev += 1;
    this.maxHp += 5;
    this.att += 5; 
    this.hp = this.maxHp;
    game.showMessage(`레벨 업! ${this.lev}레벨이 되었습니다.`)
  }
}

하지만 이 방식은 나중에 문제가 될 수 있습니다. 만약 한 화면에서 여러 게임을 동시에 진행한다면 game 변수가 어떤 게임을 저장하고 있는지 알 수 없습니다. 가장 안전하고 확실한 방법은 game 변수가 현재 내가 진행하고 있는 게임을 가리키게 하는 것입니다. 그러려면 Hero의 속성에 현재 게임을 추가하면 됩니다. 이를 위해 new Hero로 주인공 객체를 생성할 때 this(Game 객체)를 전달합니다. 그러면 Hero 객체에서는 this.game으로 현재 진행하는 게임에 접근할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.