Also, if it wouldn't hurt, could you guys tell me if my code looks okay? I feel like I could be making a mistake here. There's pretty much only one object instantiated of the playerCharacter class. I feel like that's a mistake, because I currently only need one player, but I also think I need the organization of data that classes provide. Are there cleaner alternatives, or is what I'm doing okay?
I assume that the reason for having everything public in the class is for simplicity in testing and making the code minimal. If not then you should make all variables that are not needed as public private. The usage of references instead of pointers and usage of initialization lists in the constructor. Those are all good programming habits that are worth learning and implementing, but it's become obvious that the problem most likely doesn't lie in that.
There are surely better ways to structure it by going through what is considered to be good programming practice and other standards that make code far more readable.
However if you ask for improvements you can go for that.
The update function should be a member function, not a friend. cmath instead of math.h. #Define when you could have a math global const (in a namespace for better handling). Enums could be used for explicit state handling instead of using a char (even more with C++ 11 enum classes and changes in enums). Static_cast instead of C casts and the list can go on.
Now for the real problem, let passed time in the update function be sf::Time instead of sf::Int32 and use the FPS clock to return time to it directly. Inside the function convert time to seconds (casting microseconds to float may not be right) and check the results.
The call should look like this:
Update(teabot, gameClock.getElapsedTime());
///Using a reference to teabot, not a pointer.
///As it would receive an sf::Time variable this is valid.
///Note that you make the conversion to seconds or whatever time unit you want inside the function.
Take note that your char Distance 'F' doesn't change back to another value when there's no input, so that may be a possible cause. An enum (with good naming) would make what you want to do with the class a lot clearer.
And the variable is never initialized, which can be potentially bad, as it can have a random value that has the possibility of being 'F'.
I'll probably test it tomorrow (as I can't right now), but try that for now.