Edit: to clarify, Z is just the "map" you're on.
by jump i mean, a sudden "large" shift in offset position.
I DID figure it out though, JUST NOW
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| public void doMovement(long now) { move_north = false; move_south = false; move_east = false; move_west = false; if(keys[KeyEvent.VK_UP] == 1 && keys[KeyEvent.VK_DOWN] == 0) { move_north = true; moving_south = false; } if(keys[KeyEvent.VK_DOWN] == 1 && keys[KeyEvent.VK_UP] == 0) { move_south = true; moving_north = false; } if(keys[KeyEvent.VK_LEFT] == 1 && keys[KeyEvent.VK_RIGHT] == 0) { move_west = true; moving_east = false; } if(keys[KeyEvent.VK_RIGHT] == 1 && keys[KeyEvent.VK_LEFT] == 0) { move_east = true; moving_west = false; } if(move_north && !moving_north && !moving_south && offsety == 0) { if(player.move(player.x, player.y + 1, player.z)) { moving_north = true; offsety = -32; } } if(move_south && !moving_south && !moving_north && offsety == 0) { if(player.move(player.x, player.y - 1, player.z)) { moving_south = true; offsety = 32; } } if(move_west && !moving_west && !moving_east && offsetx == 0) { if(player.move(player.x -1, player.y, player.z)) { moving_west = true; offsetx = -32; } } if(move_east && !moving_east && !moving_west && offsetx == 0) { if(player.move(player.x + 1, player.y, player.z)) { moving_east = true; offsetx = 32; } } if(now > offset_timer) { offset_timer = now + offset_timer_length; if(offsetx < 0) offsetx ++; if(offsetx > 0) offsetx --; if(offsety < 0) offsety ++; if(offsety > 0) offsety --; } if(offsetx == 0) { moving_east = false; moving_west = false; } if(offsety == 0) { moving_north = false; moving_south = false; } } |
The above code does not allow any visual shifts