Хорошо, поэтому я пытаюсь создать простую RPG-игру, и мой код чтения карты, кажется, отключен.Это строка чтения карты:
Integer.parseInt(map.data.substring(Map.MAP_START + ((playerPOS - map.width)/2) - 1, Map.MAP_START + ((((playerPOS - map.width)/2) - 1) + map.dataLen)));
Теперь единственными плитками на карте являются 01 и 00, поэтому, когда я вижу 10, я понимаю, что что-то не так:
(playerPOS - map.width) = 34 playerPOS = 50 player.x = 2 player.y = 3 blah = 0
(playerPOS - map.width) = 18 playerPOS = 34 player.x = 2 player.y = 2 blah = 10
Здеськод чтения карты:
public void init(GameContainer gc) throws SlickException {
map = new Map();
player = new Player();
keys = new boolean[ALL_KEYS];
for(int i = 0; i < ALL_KEYS; i++){
keys[i] = false;
}
file = new File("testmap.txt");
try {
fin = new FileInputStream(file);
bin = new BufferedInputStream(fin);
StringBuilder sb = new StringBuilder();
int ch = 0;
while ((ch=bin.read())!=-1) {
sb.append((char)ch);
}
map.data = sb.toString().replace(" ", "").replace("\n", "").replace("\r", "");
System.out.print(map.data);
map.width = Integer.parseInt(map.data.substring(map.dataOffs, map.dataOffs + map.dataLen));
map.dataOffs += map.dataLen;
map.height = Integer.parseInt(map.data.substring(map.dataOffs, map.dataOffs + map.dataLen));
map.dataOffs += map.dataLen;
}
catch (Exception e) {
e.printStackTrace();
}
tiles = new Image("tiles.png");
hero = new Image("hero.png");
}
, а вот файл карты:
16 12
01 01 01 01 01 01 01 01 01 01 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 01 01 00 00 00 00 00 00 00 00 00 00
00 00 00 00 01 01 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
01 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Так что, если потребуется дополнительная информация, дайте мне знать.