I not gonna fix this in your project. It is to complicated for me, and i see things that i dont understand.
Like that 'for every zero seconds' every where in the events. Like all those duplicate key triggers.
But i gonna do my best to explain what is happening. So you can fix it yourself.
You have an object on a rotated/parallaxed layer, and you want to move it towards a position on another and different rotated/parallaxed layer. In your case different means not rotated/parallaxed at all for the second layer.
Lets explore this.
https://www.dropbox.com/s/hd03y47rwdzp4 ... 1.c3p?dl=0
In this .c3p i present you 2 layers. On each layer you find a sprite representing a coordinate system. A coordinate system is just and no more then a way to describe where a certain point is. That point is so much units on the X axes and so many units on the Y axes.
On each layer you also see a sprite on 6 units on the X axes and - 6 units on the Y axes. That sprite is named 'marker'.
Now press U on the keyboard to rotate layer 0. You see that the non of the markers is changing position towards there coordinate system. Both still sit on 6 units on the X axes and - 6 units on the Y axes. Yet they are not on the same position on the screen.
The Coordinate System for layer 0 changed. (well it rotated). So now both markers live in a different world. You can not longer say that the marker on layer 1 sits on 6 units on the X axes and - 6 units on the Y axes in the the coordinate System for layer 0.
Next c3p.
https://www.dropbox.com/s/bql5dufygbphj ... 2.c3p?dl=0
Now i added two sprites named 'PlaceOnLayer' plus a number to represent on what layer that they are.
And both layers are rotated.
Now clearly if we set 'PlaceOnLayer0' (that object is on layer 0) to the position of 'markerOnLayer1' (that object is on layer 1), IT ENDS UP on the position where 'markerOnLayer0' sits.
That is because if you position something on layer 0, the position is calculated with the coordinate system on layer 0.
So we have to invoke terrible math to translate coordinates (X&Y) from the coordinate system in layer 0 to the coordinate system in layer 1.
Luckily c3 (and 2) has Math Expressions that do all the work for you. Those expression are
LayerToCanvasX & LayerToCanvasY
and
CanvasToLayerX & CanvasToLayerY
https://www.dropbox.com/s/7267s27vargan ... 3.c3p?dl=0
We can not straight translate from a coordinate system on layer 0 to that on layer 1.
We have to do it in 2 steps.
First we use LayerToCanvasX & LayerToCanvasY. Those expressions translate an X/Y coordinate on a certain layer to the coordinate system of the screen (Canvas).
The screen is never ever rotated/parallaxed, so it has always a default and known coordinate system. We just use it to temporally push our rotated/parallaxed X/Y in a known steady world.
Secondly.
We use CanvasToLayerX & CanvasToLayerY to fly those coordinates from the that steady world coordinate system to the coordinate system on the other layer.
So its.
Step 1 .. use LayerToCanvasX to translate a X on a rotated layer to a non rotated world.
Step 2 .. use CanvasToLayerX to translate the X on the non rotated world to another layer.
In the previous .c3p you see this happening using 4 local variables.
But it can also be done all at once in 1 action:
https://www.dropbox.com/s/4c9r3fjk87g5k ... 4.c3p?dl=0
Hope my English was good enough to explain this. Sorry if not the case.