I believe this is quite simple. But I have never been good at math so I ask here before doing some thing dumb. In my game the world is build up in chunks, which is 32x32 tiles. The problem I have is moving a object to another chunk. It works as long as the coordinates are not negative. But if they are, it won't work. I have tried to do it on my own. But what that would require is an awful if statement to handles negative coordinates, and I think it could be done without an if statement
here is the code I have got working so far. I remove all attempts to do negative coordinates
int chunkX = getChunkX() + (x / Chunk.SIZE);
int chunkY = getChunkY() + (y / Chunk.SIZE);
x = x%Chunk.SIZE;
y = y%Chunk.SIZE;
so what needs to happened. If a object is at 0,0 in chunk 5,5 and gets a order to move to 0,-1 the coordinates most change to 0,31 chunk 5,4
EDIT: I going to try to make it easier to understand.
I have big and small arrays set up like this.
The P is the player/Object. Now I want to move him to 3,-1 which would result in java.lang.ArrayIndexOutOfBoundsException
So instead I want to move the Player/Object to 3x8 but in the big 0,-1 array. The problem is I don't know the math I need to do so I get the right big array, and the small array coordinates.
chunkX and chunkY is the big array x and y
x and y is the small array x and y