2013-05-10 5 views
0

나는 게임에서 일해 왔고, 게임에서 나는 몬스터를 길들인 소모이다. (포켓몬과 비슷하다.) 내가하고 싶은 일은 길들이기 몬스터 5 개를 배낭에 담아서 한 번에 1 개를 만들 수 있습니다. 누가 열거 형을 사용하도록 권장합니다. (더 이상 그 사람에게 연락 할 수 없기 때문에(), 몇 가지 열거 형 자습서와 예제를 살펴 보았습니다.이 도움이되는 방식을 이해할 수 없습니다.열거 형을 변경할 수 있습니까?

그래서 내 생각이었다

public enum TamedMonsterStats { 
    ELF(0,"res/siren_monster_girl_sprite_by_tsarcube-d52y2zu.png",0,100); 
    DRAGON(0,"res/dragon.png",0,100); 
    private int haveit; 
    private String photoname; 
    private int typeOfDamage;/* 
    * 0: dark 
    * 1: light 
    * 2: 
    */ 
    private int HP; 

    TamedMonsterStats(int haveit,String photoname,int typeOfDamage,int HP){ 
     this.haveit = haveit; 
     this.photoname = photoname; 
     this.typeOfDamage = typeOfDamage; 
     this.HP = HP; 
    } 
    public int getHaveIt(){ 
     return haveit; 
    } 
    public String getPhotoName(){ 
     return photoname; 
    } 
    public int getTypeOfDamage(){ 
     return typeOfDamage; 
    } 

    public int getHP(){ 
     return HP; 
    } 
    public void setHp(int hp) { 
     HP = hp; 
    } 
} 

작업이하고자 종류,하지만 daveychu 지적으로 나 같은 생물의 두 인스턴스를 가질 수 있도록,이는 불가능합니다 :

우리가 열거는 다음과 같이한다고 가정 해 봅시다 monster1, monster2, monster3, monster4, monster5와 함께 enum 배낭을 가지고 동적으로 값을 채우려면 열거 형을 요구하지 않아야한다는 것을 의미합니다.

답변

4

당신은 당신의 열거에 setter 메소드를 추가 할 수 있습니다

public void setHp(int hp) { 
    HP = hp; 
} 

그러나, 내가 열거의 사용에 약간의 경계입니다. 이 상황에서 언제든지 하나의 "DRAGON"인스턴스 만 존재할 수 있으므로 사용자가 더 많은 것을 갖고 싶거나 적을 동시에 갖고 싶으면 어떻게 할 것인지 궁금합니다.

반면에 당신의 typeOfDamage이 열거를위한 훌륭한 후보 : 그것은 더 많은 읽을 전달하는 것보다 수

ELF(0, "res/siren_monster_girl_sprite_by_tsarcube-d52y2zu.png", DamageType.DARK, 100), 
DRAGON(0, "res/dragon.png", DamageType.LIGHT, 100); 
private DamageType typeOfDamage; 

TamedMonsterStats(int haveit, String photoname, DamageType typeOfDamage, int HP) { 
    this.typeOfDamage = typeOfDamage; 
} 

public DamageType getTypeOfDamage() { 
    return typeOfDamage; 
} 

:

public enum DamageType { 
    DARK, 
    LIGHT, 
    NORMAL 
} 

그런 다음이 열거을 사용할 수 있습니다 임의의 정수.

+0

고맙습니다. 훌륭한 답변입니다. 나는 열거에 몬스터를 동적으로 추가하는 방법이 있는지 궁금하다. 예를 들어, 나는 배낭에있는 몬스터 1 개부터 시작합니다. 점점 더 많은 몬스터를 잡으면 최대 5 개까지 늘릴 수 있습니까? 그리고 어떻게? – Boyen

+1

몇 가지 생각을 해본 후 가장 좋은 방법은 monster1, monster2, monster3, monster4, monster5가있는 열거 형 백팩을 사용한 다음 동적으로 값을 채우는 것입니다.하지만이 방법을 사용하면 안됩니다. 열거 형을 요구하는 것은 사실입니까? – Boyen

관련 문제