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으로 현재 진행하는 게임에 접근할 수 있습니다.