如何在java中设计一个面向对象的RPG类系统?
我正在做一个基于类系统的流氓,并且遇到了实现类系统的问题。我很确定解决办法很简单,但请耐心听我说如何在java中设计一个面向对象的RPG类系统?,java,class,oop,roguelike,Java,Class,Oop,Roguelike,我正在做一个基于类系统的流氓,并且遇到了实现类系统的问题。我很确定解决办法很简单,但请耐心听我说 class Creature { int HP; CharacterClass playerClass = new Wizard(); HP = playerClass.hitDie; ArrayList<Ability> creatureAbilityList = new ArrayList<>(); creatureAbilityL
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));
}
}
类生物{
int-HP;
CharacterClass playerClass=新建向导();
HP=playerClass.hitDie;
ArrayList creatureAbilityList=新建ArrayList();
creatiureabilitylist.add(classAbilityList.get(1));
}
类字符类{
int hitDie;
ArrayList classAbilityList=新的ArrayList();
}
类向导扩展CharacterClass{
向导(){
hitDie=6;
添加(新技能(魔法导弹));
}
}
我得到一个“令牌语法错误”;“new Wizard()”后面的分号应为“,”。但是,我相当肯定这不是问题所在,而是我的类和继承的设置方式。我应该如何设置代码?任何帮助都将不胜感激。您应该将hitDie设置为私有,并使用getter和setter使其可访问以启用polimorphism(因此调用的getHitDie()将是类向导中的一个,而不是类CharacterClass中的一个)您应该将hitDie设置为私有,并使用getter和setter使其可访问以启用polimorphism(因此调用的getHitDie()将是类向导中的一个,而不是类CharacterClass中的一个)问题在于下面的行。应该是
int HP=playerClass.hitDie;
(并删除行
int HP;
)问题出在下一行。应该是
int HP=playerClass.hitDie;
(并删除行
int HP;
)您是否尝试过Wizard playerClass=new Wizard()?同时,该生物也可以扩展向导!啊,学习编程的奇迹你应该学习基本语法,学会正确缩进。在生物类中,例如初始化和分配给HP,不允许直接在类下单独分配,它需要在方法或构造函数中或在初始化语句中。@Dinh但是如果我想要一个野蛮类等,这是不允许的。您尝试过Wizard playerClass=new Wizard()?同时,该生物也可以扩展向导!啊,学习编程的奇迹你应该学习基本语法,学会正确缩进。在生物类中,例如初始化和分配给HP,不允许直接在类下面单独分配,它需要在方法或构造函数中,或者在初始化语句中。@Dinh但是如果我想要一个野蛮类,等等,那是不允许的。不要忘了creatureAbilityList.add(classAbilityList.get(1))代码>,不能在字段中使用。不要忘记creatureAbilityList.add(classAbilityList.get(1))代码>,不能在字段中使用。