我想知道我为自己的游戏建模难度等级的方法是否很好。
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;
}
}
我想知道是否有一种更简单的方法可以做到这一点,但是使用起来却一样容易和干净。
编辑:有人可以这么向我解释为什么这个问题得票数减。该代码或我的解释有问题吗?谢谢。
最佳答案
您的设计可以完成工作,但是似乎您想要拥有的是容器类。因此,要为每个值使用一个方法,而要使用一个(最终)字段,该字段包含该值和一个吸气剂。他们可以设置例如在构造函数中。
如果您的难度模式已知并且很少,请考虑使用一个枚举,它是最终的且易于使用。
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;
}
}