Basically, I am trying to make a tile-based tower defense game by following a tutorial and so far I have the following code:
private int[] findNextDir(tile s) {
int[] dir = new int[2];
tile u = grid.getTile(s.getXPlace(), s.getYPlace() - 1);
tile r = grid.getTile(s.getXPlace() + 1, s.getYPlace());
tile d = grid.getTile(s.getXPlace(), s.getYPlace() + 1);
tile l = grid.getTile(s.getXPlace() - 1, s.getYPlace());
After this point line 54 (tile d's line) returns this (without the code snippets):
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11
at data.tileGrid.getTile(tileGrid.java:41)
public tile getTile(int xPlace, int yPlace) {
return map[xPlace][yPlace];
at data.enemy.findNextDir(enemy.java:54)
private int[] findNextDir(tile s) {
int[] dir = new int[2];
tile u = grid.getTile(s.getXPlace(), s.getYPlace() - 1);
tile r = grid.getTile(s.getXPlace() + 1, s.getYPlace());
tile d = grid.getTile(s.getXPlace(), s.getYPlace() + 1);
at data.enemy.<init>(enemy.java:37)
this.directions = new int[2];
//xDir
this.directions[0] = 0;
//yDir
this.directions[1] = 0;
directions = findNextDir(startTile);
at data.boot.<init>(boot.java:31)
enemy e = new enemy(texLoad("enemy"), grid.getTile(10, 10),
grid, 64, 64, 2);
at data.boot.main(boot.java:49)
public static void main(String[] args) {
new boot();
The annoying thing is when I take out the '+ 1' it works perfectly except for the lack of the '+ 1'.