I am trying to move a player around on a tilemap, keeping it centered on its tile, while smoothly controlling it with SneakyInput virtual Joystick. My movement is jumpy and hard to control. What's a good way to implement this?
I'm trying to get a tilemap based RPG "layer" working on top of cocos2d-iphone. I'm using SneakyInput as the input right now, but I've run into a bit of a snag.
So, I took it a step further. I changed my
player.position to a
CCMoveTo action. Combined with
CCfollow, my player moves pretty smoothly. Here's the problem, though: Between each
CCMoveTo, the movement stops, so there's a bit of a jumpiness introduced between movements.
To deal with that, I changed my
CCmoveTo into a
CCMoveBy, and instead of running it once, I decided to have it
CCRepeatForever. My plan was to stop the repeating action whenever the player changed directions or released the d-pad.
However, when the movement stops, the player is not necessarily centered along the tiles, as it should be. To correctly position the player, I use a
CCMoveTo and get the closest position that would put the player back into the proper position. This reintroduces an earlier problem of jumpiness between actions.
What is the correct way to implement a smooth joystick while smoothly animating the player and keeping it on the "grid" of tiles?
It turns out that this was caused by a "Bug Fix" in the cocos2d engine.