As Mr. Wizard mentioned, the best way to do rotations is with matricies. It's far more efficient.

However, the chunk of code you presented should work fine if you make one little change. They should not both be using the same trigonometric function. It should instead look something like this:

Player1.x += sin(Player1.angle) * 4;
Player1.y += cos(Player1.angle) * 4;

In truth, you should remove the "4" and replace it with some variable name such as "speed" as that's what it would represent in this case.

Incidentally, cosine will ~not~ give you a constantly positive value. Like the sine function, it will always return a value between positive and negative one.