如何在 java 中使用 OOP 设计 RPG class 系统?
How to design an RPG class system with OOP in java?
我正在制作一个基于 Trystan's Tutorial 和 运行 的 roguelike 来解决实施 class 系统的问题。我很确定解决方案很简单,但请耐心等待。
class Creature {
int HP;
CharacterClass playerClass = new Wizard();
HP = playerClass.hitDie;
ArrayList<Ability> creatureAbilityList = new ArrayList<>();
creatureAbilityList.add(classAbilityList.get(1));
}
class CharacterClass {
int hitDie;
ArrayList<Ability> classAbilityList = new ArrayList<>();
}
class Wizard extends CharacterClass {
Wizard() {
hitDie = 6;
classAbilityList.add(new Ability(magicMissile));
}
}
我在 "new Wizard()" 后的分号处得到 "Syntax error on token ";", , expected",。不过,我相当确定这不是问题,而是我的 classes 和继承的设置方式。我应该如何设置代码?任何帮助将不胜感激。
你应该将 hitDie 设为私有,并使其可以通过 getter 和 setter 访问以启用多态性(因此调用的 getHitDie() 将是 class向导而不是 class CharacterClass 之一)
问题出在下一行。应该是
int HP=playerClass.hitDie;
(并删除行 int HP;
)
我正在制作一个基于 Trystan's Tutorial 和 运行 的 roguelike 来解决实施 class 系统的问题。我很确定解决方案很简单,但请耐心等待。
class Creature {
int HP;
CharacterClass playerClass = new Wizard();
HP = playerClass.hitDie;
ArrayList<Ability> creatureAbilityList = new ArrayList<>();
creatureAbilityList.add(classAbilityList.get(1));
}
class CharacterClass {
int hitDie;
ArrayList<Ability> classAbilityList = new ArrayList<>();
}
class Wizard extends CharacterClass {
Wizard() {
hitDie = 6;
classAbilityList.add(new Ability(magicMissile));
}
}
我在 "new Wizard()" 后的分号处得到 "Syntax error on token ";", , expected",。不过,我相当确定这不是问题,而是我的 classes 和继承的设置方式。我应该如何设置代码?任何帮助将不胜感激。
你应该将 hitDie 设为私有,并使其可以通过 getter 和 setter 访问以启用多态性(因此调用的 getHitDie() 将是 class向导而不是 class CharacterClass 之一)
问题出在下一行。应该是
int HP=playerClass.hitDie;
(并删除行 int HP;
)