有没有办法减少if / else句子的数量并使我的代码更有效率?

时间:2017-08-03 14:54:27

标签: java if-statement

我目前正在用Java制作一个小游戏,你从一个简单的棒图开始(我用Photoshop绘制),你可以购买硬币的物品。

现在你可以购买3件物品:剑,盔甲和头盔

如果单击带有剑的复选框并按下购买按钮,ImageView中的图像将基本上更改为另一个图像(我在Photoshop中的原始火柴人上创建了一个新图层,他持有剑)

我意识到,我添加到游戏中的项目越多,项目组合的可能性就越大,我最终会得到太多if / else语句。在伪代码中它看起来像这样,如果我继续做我迄今为止所做的事情:

    private void loadOwnedItems(){
   String itemsInDB = readFromDB.getItems(SingletonDataValues.getInstance().getId());

   if(itemsInDB.equals("Sword, ")) {
       //insert pic of guy with sword
   }
   else if(itemsInDB.equals("Sword, armor, ")){
       //insert pic of guy with sword and armor
   }
   else if(itemsInDB.equals("Sword, armor, helmet, ")) {
       //pics of guy w/ sword, armor, helmet
   }
   else if(itemsInDB.equals("Armor, ")) {
       //insert pic of armor
   }
   else if(itemsInDB.equals("Armor, helmet, ")) {
       //armor + helmet
   }//and so on...

用户可能会购买剑+头盔,或只是头盔+护甲,护甲+剑,因此如果我在游戏中添加更多物品,可能性会变得太多。

有没有更好的方法来做到这一点,我该怎么做?

1 个答案:

答案 0 :(得分:2)

我不确定你是怎么做的,但是一个广泛的想法是将所有购买作为单独的对象,并且每次玩家购买的东西你将该单个对象添加到场景而不是重绘整个场景。