我正在编写一个RPG,我希望Character对象能够创建控制其“权力”的对象
每个字符都有一个字符串变量powerOne,PowerTwo等。 powerOne =“攻击”
我需要一种方法来做到这一点:
"powerOne" powerOne = new "powerOne"
(需要计算机使用字符串代替实际功率,因为一旦字符学习新功能,它们就会被替换。)
这样,我总能将其余代码中的功能称为powerOne。 防爆。 powerOne.dealDamage()
答案 0 :(得分:1)
String powerOne = new String(“”);
当他们学习新的“力量”时,
powerOne =“攻击”。
虽然你还不清楚powerOne是什么。它是一个字符串还是它自己的类poweredOne?如果它是一个类,为什么不在这些行上创建一个setName函数呢?虽然我建议在这种情况下制作一个Power类。尝试让你的代码看起来像这样......
Power powerOne = new Power(“Attack!”,10); //假设你使用String // name和int Damage。构建它。
如果我有任何问题,请随时提出帮助。
答案 1 :(得分:0)
听起来你的'权力'是对象,而不是字符串。
制作界面:
public interface Power {
void dealDamage();
}
然后让所有单独的权力等级(例如Attack
等)实施Power interface
。
然后在您的Character
中,您可以拥有List
个Power
接口派生的对象。
答案 2 :(得分:0)
你应该使用名为CharacterPower的接口,其中包含一个名为dealDamage的方法。
Yould可以将权力的名称保存到String变量中,然后查询一个CharacterPowerFactory,它将使用其名称为您提供正确的CharacterPower实例。
喜欢:
String powerOne = "Attack";
CharacterPower power = CharacterPowerFactory.getInstance().createPower(powerOne);
power.dealDamage();
/**
* Your factory creating powers based on names.
*/
public class CharacterPowerFactory {
private static final CharacterPowerFactory SELF = new CharacterPowerFactory();
private CharacterPowerFactory(){}
public static CharacterPowerFactory getInstance() {return SELF;}
public CharacterPower createPower(String powerName) {
if("Attack".compareTo(powerName) == 0) {
return new AttackPower();
}
return null;
}
}
/**
* Your Attack power implementation
*/
public class AttackPower implements CharacterPower {
public void dealDamage(){
// Dealing the damage
}
}
/**
* Your interface definition
*/
public interface CharacterPower {
void dealDamage();
}