表达式的类型必须是数组类型,但已解析为TileSet

时间:2019-03-02 22:10:37

标签: java

我正在尝试编写Java RPG游戏,但是tileSet加载程序无法正常工作。 这是代码:

TileSet tileSet1 = new TileSet("/tiles/rpg.png", 12, 12, 0, null);
Level level = new Level(this, "/level/level1.txt", tileSet);

这导致错误。这应该通过它执行,但是问题是它是一个数组。但这必须是该类中其他方法的数组:

public Level(Game game, String path, TileSet[] ts1) {
  this.game = game;
  this.ts = ts1;
  String file = Utils.loadFileAsString(path);
  String[] tokens = file.split("\\s");
  sizeY = Utils.parseInt(tokens[1]);
  tileMap = new int[1][sizeX][sizeY];
  int i = 2;
  for(int y = 0; y < sizeY; y++){
    for(int x = 0; x < sizeX; x++){
      tileMap[0][x][y] = Utils.parseInt(tokens[i++]);
    }
  }
}

为什么会这样?

1 个答案:

答案 0 :(得分:1)

构造函数在最后一个参数中期望使用数组,但是您仅传递了一个对象。尝试将其包装到数组中:

Level level = new Level(this, "/level/level1.txt", new TileSet[]{tileSet});