The rotating of the cannon is just animating the cannon for the current rotation direction, it looks like you're sending a new object every tick.
Can you post the object method in player.getPA().object
player.getPA().object(cannon.getPosition().getX(), cannon.getPosition().getY(), 516, 10, -1);
The 516 is the animation but could potentially be out of bounds for whatever the correct parameter is supposed to be there.







