if(worldCol == gp.maxWorldCol) { worldCol= 0; worldRow++; } } } } В переменной tileNum должны быть разные числа, ведь в файле world01.txt я указал разные блоки(числа). Типо так(пробел это разделение, его я указал в split) 1 1 1 3 3 3 4 4 4 5 4 3 2 1 5 6 7 8
Дополнен 1 год назад
Но на экране появляется только блок травы, то есть програма думает что в world01.txt одни нули
MvC
Просветленный
(36648)
Ярослав Куров, хз на гид хабе этот вопрос задай
(а так есть нейросети которые могут писать коды на всех языках-насчет делает ли она там ошибки хз)
Дебаг в помощь или печатайте значения numbers[] смотрите что содержит, разберетесь Хз, вы не весь код привели даже, куча переменных инициализированы за рамками этого кода
try {
InputStream is = getClass().getResourceAsStream(filePath);
BufferedReader br =new BufferedReader(new InputStreamReader(is));
int col = 0;
int row = 0;
while(col < gp.maxWorldCol && row < gp.maxWorldRow) {
String line = br.readLine();
while(col < gp.maxWorldCol) {
String numbers[] = line.split(" ");
int num = Integer.parseInt(numbers[col]);
mapTileNum[col][row] = num;
col++;
}
if(col == gp.maxWorldCol) {
col=0;
row++;
}
}
br.close();
}catch(Exception e) {
}
}
public void draw(Graphics2D g2) {
int worldCol = 0;
int worldRow = 0;
while(worldCol < gp.maxWorldCol && worldRow < gp.maxWorldRow) {
int tileNum = mapTileNum[worldCol] [worldRow];
int worldX = worldCol * gp.tileSize;
int worldY = worldRow * gp.tileSize;
int screenX = worldX - gp.player.worldX + gp.player.screenX;
int screenY = worldY - gp.player.worldY + gp.player.screenY;
g2.drawImage(tile[tileNum].image, screenX , screenY, gp.tileSize, gp.tileSize, null);
worldCol++;
if(worldCol == gp.maxWorldCol) {
worldCol= 0;
worldRow++;
}
}
}
}
В переменной tileNum должны быть разные числа, ведь в файле world01.txt я указал разные блоки(числа). Типо так(пробел это разделение, его я указал в split)
1 1 1 3 3 3 4 4 4
5 4 3 2 1 5 6 7 8