我正在用Java制作一个非常简单的2D RPG游戏。我的目标是尽可能使用简单的代码实现。目前,我的类结构如下:
- 物理对象具有x和y维度。 - 漫游对象是可以移动()的物理对象。 - 人形对象是漫游对象,具有GameItems库存。 - 玩家是单例人形对象,最多可以雇佣4个NPC人形对象加入他或她的队伍,并执行其他操作,例如与非人形对象战斗。 - NPC人形对象可以被玩家对象雇佣加入他或她的队伍,一旦被雇佣就可以为玩家战斗。
到目前为止,我已经给玩家类添加了一个“party” NPC人形对象的ArrayList,并给NPC人形对象类添加了一个“hired”布尔值。
然而,我的战斗方法很笨重,需要使用if语句来检查队伍的大小,然后才能实现战斗,例如:
- 物理对象具有x和y维度。 - 漫游对象是可以移动()的物理对象。 - 人形对象是漫游对象,具有GameItems库存。 - 玩家是单例人形对象,最多可以雇佣4个NPC人形对象加入他或她的队伍,并执行其他操作,例如与非人形对象战斗。 - NPC人形对象可以被玩家对象雇佣加入他或她的队伍,一旦被雇佣就可以为玩家战斗。
到目前为止,我已经给玩家类添加了一个“party” NPC人形对象的ArrayList,并给NPC人形对象类添加了一个“hired”布尔值。
然而,我的战斗方法很笨重,需要使用if语句来检查队伍的大小,然后才能实现战斗,例如:
public class Player extends Humanoids {
private ArrayList<Humanoids> party;
// GETTERS AND SETTERS for party here
//...
public void fightEnemy(Enemy eneObj) {
if (this.getParty().size() == 0)
// Do combat without party issues
else if (this.getParty().size() == 1)
// Do combat with party of 1
else if (this.getParty().size() == 2)
// Do combat with party of 2
// etc.
我的问题是,在面向对象设计的思路下,我这样做是否可以用尽可能简单的代码实现?是否有更好的方法?