Rotation – rotate 2D positions without rotating graphics

I'm working on a basic 2D game from an isometric perspective of overhead / fake. Arrow keys move the camera left / right / up / down. The problem occurs when I try to add rotation,

I want the player to turn the camera (or the card?) Around the center of the camera. The sprite positions should move during the spin, but the sprite graphics should not rotate. For example, the sprites always point upwards, even if their position rotates around the screen.

I thought that would be easy. Just keep an eye on the X, Y and the rotation of the camera. However, I have some problems. Here's a snippet of my code (go with the Pixel 2d library):

if win.Pressed (pixelgl.Key1) {
camRot + = camRotSpeed ​​* dt
if win.Pressed (pixelgl.KeyLeft) {
camX + = camSpeed ​​* dt
// similar for other keystrokes ...

// Draw objects
for i entity: = distance entities {
sin: = math.Sin (camRot)
cos: = math.Cos (camRot)
adjustCamX: = camX * cos - camY * sin
adjustCamY: = camX * sin + camY * cos
adjustMatrix: = matrices[i]Moved (Pixel.V (CamX, CamY)). Moved (Pixel.V (AdjustCamX, AdjustCAMY))
entity.Draw (win, adjustMatrix)

There are two problems: (1) After rotating, the camera now uses the arrow keys to move at an angle instead of up / down / left / right, and (2) I do not know how to turn around the center of the image, and not whatever the current orientation is (0,0 lower left?).

Note: The Pixel Library uses transformation matrices instead of pure coordinates. At first, I thought that would be good (I can just make a rotation on the entire screen!), But then the graphics are also spinning. So I'm just trying to emulate with pure coordinates and ignore the matrix (see the line with adjustMatrix, the matrices)[i] is only the X Y position of the entities).

An example of what I want to achieve is in the first few seconds of this video