我想知道我为游戏建模难度级别的方法是否良好。
public abstract class AbstractDifficulty {
public AbstractDifficulty() {
}
public abstract int enemyWaves();
public abstract int enemiesInWave();
public abstract long enemyWaveIntervalMilis();
}
例如,还有几个实现这些方法的子类。
public class EasyDifficulty extends AbstractDifficulty {
@Override
public int enemyWaves() {
return 1;
}
@Override
public int enemiesInWave() {
return 10;
}
@Override
public long enemyWaveIntervalMilis() {
return 500;
}
}
我想知道是否有一种更简单的方法可以做到这一点,但使用起来同样简单干净。
编辑:有人能好心地向我解释一下为什么这个问题得到了负票吗?这段代码或者我的解释有问题吗?谢谢。
最佳答案
您的设计可以完成这项工作,但您似乎想要的是一个容器类。因此,不要为每个值提供一个方法,而是使用一个包含该值和 getter 的(最终)字段。它们可以设置为在构造函数中。
如果您的难度模式已知且很少,请考虑使用枚举,它是最终的并且更易于使用。
enum Difficulty {
EASY(1, 10, 5000),
MEDIUM(2, 15, 4000),
HARD(4, 20, 3500);
private final int enemyWaves;
private final int enemiesInWave;
private final long enemyWaveIntervalMilis;
Difficulty(int enemyWaves, int enemiesInWave, long enemyWaveIntervalMilis ){
this.enemyWaves = enemyWaves;
this.enemiesInWave = enemiesInWave;
this.enemyWaveIntervalMilis = enemyWaveIntervalMilis;
}
public int getEnemyWaves() {
return enemyWaves;
}
public int getEnemiesInWave() {
return enemiesInWave;
}
public long getEnemyWaveIntervalMilis() {
return enemyWaveIntervalMilis;
}
}
关于java - 建模游戏难度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29122229/