This:
(Position.X - Position.X + Size.X, Position.Y - Position.Y + Size.Y)
is just
(Size.X, Size.Y)
Didn't look at all of your code but it doesn't seem that you are adding any sort of rotation vector to the position of the circle to tell it which direction to go.
You're going to need sines and cosines for that vector. You need to calculate the cartesian co-ordinates for a given rotation direction, in case you need something specific to look up. ;)
OK thanks, now I see the mistake by the movement
Position.X - Position.X + Size.X, Position.Y - Position.Y + Size.Y)
But, why need the circle a rotation? I just want that the start position of the circle is always by the top of the rect.
This was my attempt but it failed.
CircleShape Shot
= new CircleShape
(5); Shot
.Position = new Vector2f
(Position
.X, Position
.Y + Size
.Y * 2 / 3); ShotList
.Add(Shot
); }