The way you're doing it, this is actually a very good thing.
The main reason globals are normally "evil" is that people make globals simply to allow several parts of their code to easily access and
modify them. This quickly devolves into an incomprehensible, undebuggable mess unless you have a flawless understanding of exactly who modifies the global in what ways at what times in what order...which nobody does.
The second--arguably less serious--reason is that they can "pollute the namespace" of code that's including your code. By that I mean, if you put playerPos in Player.hpp (and you weren't using namespaces), then anybody including your player class would be unable to define playerPos without accidentally referring to your object. This also quickly gets out of hand when a lot of other libraries are involved.
Having a global constant at the top of a .cpp file has neither of these problems. No code is ever exposed to the name except for Player.cpp itself, and it's constant, so no matter what crazy stuff you do in Player.cpp it's never going to change in weird, unpredictable ways. This is a perfectly standard thing to do, and far better than repeating {100.0,300.0} all over the place.
P.S. As proof that #2 actually happens in the real world:
http://en.sfml-dev.org/forums/index.php?topic=16882.msg121225#msg121225 Admittedly, macros were involved, so it was extra evil, but you get the point.