如何在 Java 中创建游戏成就

  • 本文关键字:游戏 创建 Java java
  • 更新时间 :
  • 英文 :


我正在尝试用Java创建游戏成就。我有班级Player和现场int level。在游戏中,每次玩家获得经验时,他都可以达到新的水平。当玩家达到10级时如何触发?(没有if运算符,因为据我了解,如果玩家达到 10 级,检查所有时间的经验增益是不正确的。 如果我会有不止一个成就?
我的建议是使用自己的事件?我正在寻找执行此任务的正确方法。

package testMyAchievements;
public class AchievementTestMain {
private static class Player {
private int level = 1;
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
@Override
public String toString() {
return "Player{" +
"level=" + level +
'}';
}
}
public static void main(String[] args) {
Player player = new Player();
for (int i = 0; i < 100; i++) {
player.setLevel(player.getLevel() + 1);
/*how to trigger when player reaches a level 10?(without if operator)
* and say "You reached level 10!"*/
}
}
}

老实说,我认为如果没有条件检查,您将无法实现所需的目标。您的要求是明确说明"如果您达到 10 级,则展示成就"。我想你担心你的成就系统的规模。你建立一个哈希图怎么样。其中,关键是级别,值是为该级别授予的成就列表?

这里有一个例子,你可以有一个指向一个单一成就的哈希图,但当然你也可以使用List<String>来表示多个成就。

如果级别包含在哈希图中,则显示它是相应的成就。

下面是一个示例:

int level = 10;
Map<Integer, String> levelToAchievMap= new HashMap<>();
levelToAchievMap.put(10,"Congrats you've reached level 10");

if(levelToAchievMap.containsKey(level)){
System.out.println(levelToAchievMap.get(level);
}

最新更新