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.