Yeah... I agree I left out my my logic for the fix, which makes it not very helpful. So here's my trail of thought:
Events 5-7 in your original capx only filtered the "Sprite" object. "Sprite2" is unfiltered and only the first instance of "Sprite2" is used in the expressions. "Text" is also not filtered. So it runs like this: [code]if "Sprite" is CW from the first "Sprite2" then set all the "Text" objects' text to 'Left'.
if "Sprite" is CCW from the first "Sprite2" then set all the "Text" objects' text to 'Right'.[/code]
Relevant section of manual: http://www.scirra.com/manual/75/how-events-work
So there are two problems.
1. Only the first "Sprite2" is being compared against. Changing "Every tick" to "for each Sprite2" in event 5 fixes that.
2. All the "Text" objects are getting set to the same value. What is needed is a way to be able to pick the "Text" that's paired with "Sprite2". Unfortunately he pin behavior doesn't cause the pinned objects to be picked, so some other method needs to be used.
I like using a instance variable to store the UID of another object, so that the paired object can be picked at any time with "pick by UID", but that is not the only solution. You could alternatively use [code]Text|Pick nearest to (Sprite2.X, Sprite2.Y)[/code] or [code]System|pick Text instance Sprite2.IID[/code] and you would avoid the need for an additional variable.